天天看点

多重继承的构造函数和析构函数的执行顺序(包含虚基类)

多重继承的构造函数和析构函数的执行顺序(包含虚基类)

多重继承的情况下,严格按照派生类定义时从左到右的顺序来调用构造函数,析构函数与之相反。但是如果基类(基类,父类,超类是指被继承的类,派生类,子类是指继承于基类的类.)中有虚基类的话则构造函数的调用顺序如下:

(1) 虚基类的构造函数在非虚基类的构造函数之前调用;(比如在本例中B构造函数是虚基类所以在A构造函数之前执行)

(2) 若同一层次中包含多个虚基类,这些虚基类的构造函数按照他们的说明顺序调用;

(3) 若虚基类由非虚基类派生而来,则任然先调用基类构造函数,再调用派生诶,在调用派生类的构造函数。

继续阅读