#include <iostream>
using namespace std;
class Base1
{
int d1;
public:
Base1(int i)
{
d1 = i;
cout<<"constructing Base1: "<<d1<<endl;
}
};
class Base2
{
int d2;
public:
Base2(int j)
{
d2 = j;
cout<<"constructing Base2: "<<d2<<endl;
}
};
class Base3
{
int d3;
public:
Base3(int k=0)
{
d3 = k;
cout<<"constructing Base3: "<<d3<<endl;
}
};
class Derived:public Base3, public Base1, public Base2
{
int d4;
Base1 memberOBJ1;
Base3 memberOBJ3;
Base2 memberOBJ2;
public:
Derived(int a, int b, int c, int d, int e):memberOBJ2(d), memberOBJ3(b), memberOBJ1(c), Base2(a), Base1(b)
{
d4 = e;
cout<<"constructing Derived: "<<d4<<endl;
}
};
void main()
{
Derived obj(1,2,3,4,5);
while(1);
}
派生类Derived由三个基类Base3,Base1和Base
派生类的构造函数及其对象的初始化
最新推荐文章于 2022-11-16 18:13:19 发布
本文探讨了C++中派生类构造函数的工作原理和对象初始化的顺序。在构造过程中,基类的构造函数按声明顺序初始化,而成员初始化列表中的顺序可能与其执行顺序不同。在析构时,系统则按照构造的逆序进行。
摘要由CSDN通过智能技术生成