// 在采用虚基类的多重继承中,构造与析构的次序。
#include
using namespace std;
class Object{
public:
Object(){cout<
~Object(){cout<
};
class Bclass1{
public:
Bclass1(){cout<
~Bclass1(){cout<
};
class Bclass2{
public:
Bclass2(){cout<
~Bclass2(){cout<
};
class Bclass3{
public:
Bclass3(){cout<
~Bclass3(){cout<
};
class Dclass:public Bclass1,virtual Bclass3,virtual Bclass2{
Object object;
public:
Dclass():object(),Bclass2(),Bclass3(),Bclass1(){cout<
~Dclass(){cout<
};
int main(){
Dclass dd;
cout<
return 0;
}
输出结果:
constructor Bclass3
constructor Bclass2
constructor Bclass1
constructor Object
派生类建立!
主程序运行!
派生类析构!
deconstructor Object
deconstructor Bclass1
deconstructor Bclass2
deconstructor Bclass3