Multiple inheritance #include <iostream>using namespace std;class a{public: A () { cout<< "a base class construction a::a ()" << Endl; } ~a () { cout<< "A base class destructor A::~a ()" <<endl; }};class b:public a{public: b () { cout<< "B Subclass construction B:b ()" <<endl; } ~b () { cout<< "B-Subclass destructor B:~b ()" <<endl; }};class c:public a{public: c () { cout<< "C Subclass construction C::c ()" <<endl; } ~C () { cout<< "C Subclass Destruction C::~c ()" << Endl; }};class d:public b,public c{public: d () { cout<< "D grandson class structure D::D ()" << Endl; } ~d () { cout<< "D grandson Class destructor d::~d ()" <<endl; }};int main (int argc, char *argv[]) { d d; return 0;}
650) this.width=650; "Src=" https://s4.51cto.com/wyfs02/M00/A5/07/wKioL1m2cOKjspBhAAA9LHzNT64048.png-wh_500x0-wm_ 3-wmp_4-s_3813650924.png "title=" 111.png "alt=" Wkiol1m2cokjspbhaaa9lhznt64048.png-wh_50 "/>
You can see that the construction order a->b->a->c-d; the destruction order.
This article is from the "10628473" blog, please be sure to keep this source http://10638473.blog.51cto.com/10628473/1964424
Examples of constructor and destructor invocation order in C + + multiple inheritance