假设我有一个形式的类
class MyClass
{
int a = 1;
int b;
int c;
int d = 4;
MyClass() : b(2)
{
c = 3;
}
}
a,b,c,d
的分配顺序是什么?现在我确信(从旧的C++中(b
将在c
之前分配。但对于后者,其他人呢?
来自[class.base.init]:
非静态数据成员按照在类定义中声明的顺序进行初始化(同样,与mem初始化程序的顺序无关(。
在这种情况下,订单将相当于:
int a = 1;
int b = 2;
int c;
int d = 4;
c = 3;