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;
}
     为什么呢? 因为成员变量地址是连续的, 故连续初始化。



本文转载:CSDN博客