多重继承下的派生类型
定义形式:
class 派生类名:继承方式 基类名1,继承方式 基类名2{};
构造函数
- 根据继承顺序,对基类调用基类的构造函数
- tips: 此时调用顺序,与初始化表的顺序无关
析构函数
析构函数的调用顺序刚好与构造函数相反。
多重继承的二义性
- 子类继承的多个父类中,具有多个相同名字的成员,通过子类调用时,会产生变异错误。
- 子类继承的父类,几个父类又是从超父类中继承的,这样子类,会多次继承超父类的成员
- 解决犯法:
- 通过作用域运算符指定调用哪个父类的成员
- 采用虚拟继承的方式
虚基类和虚拟继承
方式: class 派生类名:virtual 继承方式 基类名{}
作用: 将基类声明为虚基类,在类的继承关系中,只被继承一次,可以消除多重继承的二义性。
网友评论