关于类中对象成员的构造函数和类自身构造函数的执行顺序的问题,我们通过一段简单的程序来验证,测试代码如下:
#include <stdio.h>
class A
{
public:
A()
{
printf("AAAAA\n");
};
~A(){};
};
class B
{
public:
B()
{
printf("BBBBB\n");
};
~B(){};
};
class C
{
public:
C()
{
printf("CCCCC\n");
};
~C(){};
private:
A m_a;
B m_b;
};
int main()
{
C m_c;
return 0;
}
执行结果如下:
结论:优先执行各个成员对象的构造函数(按照声明的顺序依次执行),其次才是类自身的构造函数。