class Base1
{
private:
int b1;
public:
Base1(){b1=0;cout<<"默认构造Base1: "<<"b1="<<b1<<endl;}
Base1(int i){b1=i;cout<<"构造Base1: "<<b1<<endl;}
~Base1(){cout<<"析构Base1: "<<"b1="<<b1<<endl;}
};
class Base2
{
private:
int b2;
public:
Base2(){b2=0;cout<<"默认构造Base2: "<<"b2="<<b2<<endl;}
Base2(int j){b2=j;cout<<"构造Base2: "<<"b2="<<b2<<endl;}
~Base2(){cout<<"析构Base2: "<<"b2="<<b2<<endl;}
};
class Base3
{
public:
Base3(){cout<<"默认构造Base3: "<<endl;}
~Base3(){cout<<"析构Base3: "<<endl;}
};
class Derive注意此派生类中共有5个数据成员,分别为基类Base1私有的b1、基类Base2私有的b2,以及新增的子对象memberBase3、memberBase2和memberBase1。
: public Base2, public Base1, public Base3基类构造函数的调用顺序按照派生类声明时的顺序(2,1,3)
{
private:
Base3 memberBase3;
Base2 memberBase2;
Base1 memberBase1;
子对象构造函数的调用顺序按照子对象成员在类中声明的顺序(3,2,1)
public:
多重继承下派生类的构造函数与析构函数示例 来自淘豆网m.daumloan.com转载请标明出处.