如果使用 brace-or-equal-initializers,成员变量的初始化顺序是什么?它们的初始化与代码顺序相同吗?
struct foo {
int x = 1;
int y = x + 1;
} bar;
无论编译器如何,bar.y
总是2
吗?
最佳答案
是的,y
保证在x
之后初始化。非静态数据成员总是 initialized in order of their declaration在类定义中,无论它们是如何初始化的(通过 member initializer list 或 default member initializer ,甚至是 default initialization )。
3) Then, non-static data member are initialized in order of declaration in the class definition.
关于c++ - brace-or-equal-initializers 初始化顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61994927/