在C++的构造函数初始化列表里,类成员的初始化顺序与其声明顺序相同,而在类的多继承中,构造函数的执行顺序便与“继承声明”顺序相同了,详见代码:
#include<iostream>
using namespace std;
class C{
public:
C(){cout<<"C Constructor\n";}
~C(){cout<<"C Destructor\n";}
};
class B{
public:
B(){cout<<"B Constructor\n";}
~B(){cout<<"B Destructor\n";}
};
class A:public B,public C
{
public:
A(){cout<<"A Constructor\n";}
~A(){cout<<"A Destructor\n";}
};
int main(){
A a;
return 0;
}
结果:
再改改程序,并瞧瞧结果:
#include<iostream>
using namespace std;
class C{
public:
C(){cout<<"C Constructor\n";}