C++ 11 引入的 non-static member initialization,即下面代码展示的。
struct A {
int x = 7; // non-static member initialization
};
该过程会发生在构造函数调用之前还是之后?在构造函数成员初始化列表执行之前还是之后?
1
alqaz 2018-03-22 00:00:58 +08:00
可能就是之后吧,构造函数初始化列表值会覆盖声明中的赋值。
|
2
alqaz 2018-03-22 00:01:29 +08:00
说错了,可能是之前,构造函数初始化列表值会覆盖声明中的赋值。
|
3
justou 2018-03-22 00:23:10 +08:00 2
在构造函数初始化列表中初始化吧(按照成员出现的顺序初始化); 要么提供一个新的值, 没给就默认用声明时给的初始值
http://en.cppreference.com/w/cpp/language/data_members |
4
jmc891205 2018-03-22 10:52:08 +08:00
它不影响成员初始化的顺序啊 成员是按声明的顺序来初始化的
只是构造函数会先去看初始化列表里有没有给值 没给的话就用这个默认值来初始化 x |