继承构造函数初始化顺序 多重继承构造函数的调用顺序
在任何非虚拟基类构造函数之前调用虚拟基类的构造函数。如果构造中包含多个虚拟基类,则它们的调用顺序为声明顺序。如果虚拟类是从非虚拟类派生的,则首先调用非虚拟类的构造函数。下面是一个示例:class X:
在任何非虚拟基类构造函数之前调用虚拟基类的构造函数。如果构造中包含多个虚拟基类,则它们的调用顺序为声明顺序。如果虚拟类是从非虚拟类派生的,则首先调用非虚拟类的构造函数。
下面是一个示例:
class X:public y,virtual public Z
X one
调用顺序如下:
Z()//虚拟基类初始化
y()//非虚拟基类
X()//继承类