有虚基类时 多继承构造函数调用顺序

2025-05-19 12:11:45
推荐回答(1个)
回答1:

虚基类的构造函数在任何非虚基类构造函数前调用。如果构造中包括多个虚基类,它们的调用顺序以声明顺序为准。如果虚类是由非虚类派生而来,那非虚类的构造函数要先被调用。
下面是一个例子:

class X : public Y, virtual public Z
X one;

调用顺序如下:

Z(); // 虚基类初始化
Y(); // 非虚基类
X(); // 继承类