C ++成员变量initializaton order

时间:2015-10-12 10:02:31

标签: c++

你能告诉我一个对象的成员变量初始化的顺序(构造函数调用)以及初始化列表是否对它有影响?例如,如果我实例化:

 class Meta
 {

 public:
    Meta() : a(), b(),c(),d()
    {

    }

 private:

    SomeObject d;
    SomeObject c;
    SomeObject b;
    SomeObject a;
 };

成员变量是按照a,b,c,d(如初始化列表中)或d,c,b,a(它们在类中定义的顺序)的顺序初始化的吗?我正在尝试使用Visual Studio 2012调试器,我的测试建议后者,但我想知道我是否可以通过初始化列表来影响它。

此致

1 个答案:

答案 0 :(得分:2)

无论初始化列表如何,它们都按照它们声明的顺序完成。