C++学习笔记之继承
继承是面向对象程序设计的三大特性之一,同时也是最重要的一个概念。继承允许我们根据一个已有的类来定义另一个类。当创建一个新类的,只需指定新建的类继承一个已有的类即可。这个已有的类我们成为基类(父类),新建的类我们称为派生类(子类)。
写法:
class A:public B 对于派生类A来说,基类B的公有成员和受保护成员的访问修饰符在A中是不变的,B的私有成员不被A所继承
class A:protected B 对于派生类A来说,基类B的公有成员和受保护成员的访问修饰符在A中称为protected,基类的公有和受保护成员成为派生类的受保护成员,B的私有成员不被A所继承
class A:private B 对于派生类A来说,基类B的公有成员和受保护成员的访问修饰符在A中称为private,基类的公有和受保护成员成为派生类的私有成员,B的私有成员不被A所继承
要注意的是,一个派生类不能继承基类的如下成员:
1.基类的构造函数、析构函数和拷贝构造函数
2.基类的重载运算符
3.基类的友元函数
举例:
#include <iostream>
using namespace std;
// 基类
class Shape
{
public:
void setWidth(int w)
{
width = w;
}
void setHeight(int h)
{
height = h;
}
protected:
int width;
int height;
};
// 派生类
class Rectangle: public Shape //public继承,基类成员访问修饰符不变
{
public:
int getArea()
{
return (width * height);
}
};
int main(void)
{
Rectangle Rect;
Rect.setWidth(5); //Rectangle公有继承自Shape,setWidth函数访问修饰符不变,为public,所以Rect对象可以使用运算符.访问setWidth函数
Rect.setHeight(7);
// 输出对象的面积
cout << "Total area: " << Rect.getArea() << endl;
return 0;
}

浙公网安备 33010602011771号