Effective C++中,条款13:是这样写的:初始化列表中成员列出的顺序和他们在类中声明的顺序相同。
而且给出了相关例子。比如如果在类中是这样声明的:
class A{
...
private:
int sum1;
int sum2;
}
在构造函数中这样写
A::A:sum2(sum1),sum1(10){...}
这样写就会有问题,sum2的值是错误的。
但是如果这样写
A::A:sum2(10),sum1(10)
这样就不会有问题。这是为什么?在函数实现中同样是先对sum2进行了初始化,另个结果却不相同