虚基派生二义性与多基派生二义性不同点
- 多基派生的二义性主要是成员名的二义性,通过加作用域限定符来解决
-
虚集派生的二义性则是共同基类成员的多重拷贝带来的存储二义性,使用
virtual
派生解决 -
二义性的检查是在访问权限检查之前进行的,因此,成员的访问权限是不能消除二义性的
有继承关系的构造析构调用总结
- 派生时,构造函数和析构函数是不能继承的,为了对基类成员进行初始化,必须对派生类重新定义构造函数和析构函数,并在构造函数的初始化列表中调用基类的构造函数
- 由于派生类对象通过继承而包含了基类数据成员,因此,创建派生类对象时,系统首先通过派生类的构造函数来调用基类的构造函数,完成基类成员的初始化,而后对派生类中新增的成员进行初始化。
- 在执行派生类析构函数时,积累析构函数会被自动调用,执行顺序是限制性派生类的析构函数,在执行基类的析构函数,这和执行构造函数时的顺序正好相反。
隐藏、覆盖、重载
- 隐藏(oversee):父子类,函数名称相同,