在初始化列表中,成员变量的初始化顺序是其在类中声明顺序,而非列表中的顺序
。
下面通过两个例子来说明问题
#include<iostream>
#include<vector>
using namespace std;
class Test{
public:
int a;
int b;
public:
Test(int val):a(b),b(val){
cout<<"init is susseccful"<<endl;
};
void output(){
cout<<"a:"<<a<<endl;
cout<<"b:"<<b<<endl;
}
// ~Test();
};
int main()
{
Test t(10);
// t.output();
t.output();
system("pause");
return 0;
}
注意:上下代码中的变量的声明顺序和列表中的顺序
。
#include<iostream>
#include<vector>
using namespace std;
class Test{
public:
// int a;
int b;
int a;
public:
Test(int val):a(b),b(val){
cout<<"init is susseccful"<<endl;
};
void output(){
cout<<"a:"<<a<<endl;
cout<<"b:"<<b<<endl;
}
// ~Test();
};
int main()
{
Test t(10);
// t.output();
t.output();
system("pause");
return 0;
}