派生类构造函数执行的次序:
调用基类构造函数,调用顺序按照它们被继承时声明的顺序(从左到右);
调用内嵌成员对象的构造函数,调用顺序按照它们在类中声明的顺序;
派生类的构造函数体中的内容。
#include <iostream>
#include <time.h>
using namespace std;
class B1
{
public:
B1(int i)
{
cout<<"constructing B1 "<<i<<endl;
}
};
class B2
{
public:
B2(int j)
{
cout<<"constructing B2 "<<j<<endl;
}
};
class B3
{
public:
B3()
{
cout<<"constructing B3"<<endl;
}
};
class C: public B2, public B1, public B3
{
public:
C(int a, int b, int c, int d):B1(a), memberB2(d), memberB1(c),B2(b)
{
}
private:
B3 memberB3;
B1 memberB1;
B2 memberB2;
};
int main()
{
C obj(1,2,3,4);
system("pause");
return 0;
}
本文通过一个C++示例程序详细展示了派生类构造函数的执行顺序:首先调用基类构造函数,其次调用内嵌成员对象的构造函数,最后执行派生类构造函数体中的内容。示例中定义了一个名为C的派生类,继承自B1、B2和B3三个基类,并包含了成员对象B1、B2和B3。
5691

被折叠的 条评论
为什么被折叠?



