例子:
class X
{
int i;
int j;
public:
X(int val):j(val),i(j){};
};
执行结果:
i = 未知数据
j = val
原因:
在调用构造函数对成员变量i,j初始化时,不是按照初始化列表顺序去执行,而是按照成员变量定义顺序执行初始化
因此执行顺序为:
i = j;
j = val;
例子:
class X
{
int i;
int j;
public:
X(int val):j(val),i(j){};
};
执行结果:
i = 未知数据
j = val
原因:
在调用构造函数对成员变量i,j初始化时,不是按照初始化列表顺序去执行,而是按照成员变量定义顺序执行初始化
因此执行顺序为:
i = j;
j = val;