继承
一、什么是继承?
C++允许一个类继承另外一个类的所有内容
提高了代码的复用性
派生类声明语法:
class 派生类名:继承方式 基类名
{
派生类新增成员声明;
}+
二、继承的方式
public :2 可访问 可继承
protected :1 不可访问 可继承
private :0 不可访问 不可继承
派生类中继承来的元素是什么权限,取决于继承方式和基类成员权限的较小值。
基类的private成员在派生类中不可访问
三、隐藏
当派生类中存在和基类重名的成员变量或成员函数,那么基类的对应成员被隐藏。
子类指针可以转化为父类指针,反之不行,原因是子类指针的作用范围比父类指针大。
将子类的对象的指针转换为父类的指针,然后就可以访问被隐藏的成员了
可以在子类的作用域中,用父类类名::成员的方式直接访问
※只要是成员函数名相同即可构成隐藏,哪怕参数列表不同。
建议:
1、不要在派生类中定义跟基类成员同名的成员。
2、继承一般只采用public方式
四、六大默认
1、构造是先有爸爸,再有我。
2、拷贝构造是先给爸爸拷,再给我拷。
3、析构是先干掉我,再干掉爸爸
4、赋值是先给爸爸赋,再给我赋
好事先爸爸,坏事先自己
五、友元
爸爸的朋友不是我的朋友
※友元所有的逻辑参考现实逻辑
六、静态成员继承
静态成员可以继承,但无论发生任何事,都只有一个拷贝。