c++成员变量初始化顺序

C++ member variable initializaton order

本文关键字:顺序 初始化 变量 成员 c++      更新时间:2023-10-16

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

 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调试器,我的测试建议后者,但我想知道我是否可以通过初始化列表影响它。

它们按照声明的顺序执行,与初始化列表无关。