您的位置:首页 > 编程语言 > C语言/C++

c++ 类的构造函数

2016-04-16 00:07 330 查看
C++构造函数初始化按下列顺序被调用:

首先,任何虚拟基类的构造函数按照它们被继承的顺序构造;
其次,任何非虚拟基类的构造函数按照它们被继承的顺序构造;
最后,任何成员对象的构造函数按照它们声明的顺序调用;
class InitialA
{
public:
InitialA(int i) { printf("Initial A, i: %d\n", i); }
};

class InitialB
{
public:
InitialB(int i) { printf("Initial B, i: %d\n", i); }
};

class Initial
{
public:
Initial(): initialB(1), initialA(1) {}
~Initial() {}

private:
InitialA initialA;
InitialB initialB;
};

int main(int argc, char* argv)
{
Initial initial;
return 0;
}


运行结果如下:

Initial A, i: 1

Initial B, i: 1

根据以上结果可知: 对成员变量的初始化,是严格按照声明次序,而不是在初始化列表中的顺序进行初始化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: