C++多重继承中构造函数和析构函数调用顺序举例
//多重继承#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A基类构造A::A()"<<endl;}~A(){cout<<"A基类析构A::~A()"<<endl;}};classB:publicA{public:B(){cout<<"B子类构造B:B()"<<endl;}~B(){cout<<"B子类析构B:~B()"<<endl;}};classC:publicA{public:C(){cout<<"C子类构造C::C()"<<endl;}~C(){cout<<"C子类析构C::~C()"<<endl;}};classD:publicB,publicC{public:D(){cout<<"D孙子类构造D::D()"<<endl;}~D(){cout<<"D孙子类析构D::~D()"<<endl;}};intmain(intargc,char*argv[]){Dd;return0;}
则可以看出构造顺序A->B->A->C-D;析构顺序相反。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。