类成员变量初始化顺序

1,使用初始化列表对成员变量进行初始化时,初始化顺序与列表顺序无关,只与类内定义的顺序有关;

2,构造函数内的初始化按照构造函数执行顺序进行初始化;

3,类中的const成员必须要在初始化列表中初始化,其他正常定义的成员都不能在定义时初始化;

4,一般static 成员在类外初始化,如:

class Test{
    static int a;
};
Test::a =1;

5,特殊static成员变量可以在类内初始化,如

class Test {
      static const int a = 1;  
};

const int Test::a; //这行是非必需的

6,非const成员变量是在初始化列表或者构造函数中初始化的;

原文地址:https://www.cnblogs.com/rulin/p/13019370.html