成员变量在类中的声名次序就是其在初始化列表中的顺序,与其在初始化列表中的次序无关
如下题 程序输出的结果是多少? A. a1=1 a2=1 B. a1=1 a2=随机值 C.程序崩溃
#include <iostream>
using namespace std;
class A
{
public: A(int a)
: a1(a),a2(a1)
{}
void print()
{
cout << "a1=" << a1<<" " << "a2=" << a2 << endl;
}
private:
int a2;
int a1;
};
int main()
{
A a(1);
a.print();
return 0;
}
------------------------------------------------------------------------------------------------------------------------
答案是B,先用a1初始化a2,这时a1还是随机值,然后再用a初始化a1。