C++ 中成员变量的初始化顺序的问题, 经常碰到, 在此, 我们再来复习一遍:
#include <iostream>
using namespace std;
class A
{
public:
int s;
int t;
A():t(1), s(t + 2){}
};
int main()
{
A a;
cout << a.s << endl; // -858993458, 不是3
cout << a.t << endl; // 1
return 0;
}
为什么呢? 因为成员变量地址是连续的, 故连续初始化。