//多重继承的构造与析构顺序
#include<iostream>
using namespace std;
class a
{
public:
a(){cout<<"构造a"<<endl;}
~a(){cout<<"析构a"<<endl;}
};
class b
{
public:
b(){cout<<"构造b"<<endl;}
~b(){cout<<"析构b"<<endl;}
};
class c
{
public:
c(){cout<<"构造c"<<endl;}
~c(){cout<<"析构c"<<endl;}
};
class d
{
public:
d(){cout<<"构造d"<<endl;}
~d(){cout<<"析构d"<<endl;}
};
class e
{
public:
e(){cout<<"构造e"<<endl;}
~e(){cout<<"析构e"<<endl;}
};
class f : public e,public b,public c,public d,public a
{
};
void main()
{
f a;
#include<iostream>
using namespace std;
class a
{
public:
a(){cout<<"构造a"<<endl;}
~a(){cout<<"析构a"<<endl;}
};
class b
{
public:
b(){cout<<"构造b"<<endl;}
~b(){cout<<"析构b"<<endl;}
};
class c
{
public:
c(){cout<<"构造c"<<endl;}
~c(){cout<<"析构c"<<endl;}
};
class d
{
public:
d(){cout<<"构造d"<<endl;}
~d(){cout<<"析构d"<<endl;}
};
class e
{
public:
e(){cout<<"构造e"<<endl;}
~e(){cout<<"析构e"<<endl;}
};
class f : public e,public b,public c,public d,public a
{
};
void main()
{
f a;
}
基类对象的构造顺序之按照派生的顺序
基类对象的析构顺序按照派生的相反顺序执行