继承的语法:class 子类 :继承方式 父类
继承的好处:可以减少重复的代码,
class A: public B
A类称为 子类 或 派生类
B类称为 父类 或 基类
继承方式:1.公共继承 2.保护继承 3.私有继承
继承中的对象模型
父类中的私有成员也是被子类继承下去了,只是由编译器给隐藏后访问不到
继承中,先调用父类的构造函数,再调用子类构造函数,析构顺序与构造相反
同名函数处理:
1.子类对象可以直接访问到子类中同名成员
2.子类对象加作用域可以访问到父类同名成员
3.当子类与父类拥有同名的成员函数,子类会隐瞒父类中同名成员函数,加作用域可以访问到父类中同名函数
同名静态成员处理方式与非静态一样,只不过有2种处理方式(通过对象和通过类名)
多继承语法:
//语法:class 子类 :继承方式 父类1 , 继承方式 父类2
class Son : public Base2, public Base1
总结:多继承中如果父类中出现了同名情况,子类使用时候要加作用域
菱形继承:
总结:菱形继承带来的问题是子类继承两份相同的数据,导致资源浪费以及毫无意义
利用虚继承可以解决菱形继承问题