#include <iostream>
using namespace std;
class A
{
public:
A(int);
~A();
void showI();
void showJ();
private:
int i;
int j;
};
A::A(int k)
:j(k),i(j)
{
cout<< "初始化完毕" <<endl;
}
inline A::~A()
{
cout<<"对话被回收" <<endl;
}
inline void A::showI()
{
cout<<"A::i = " << this->i <<endl;
}
inline void A::showJ()
{
cout<<"A::j = " << this->j <<endl;
}
int main()
{
A a(5);
a.showI();
a.showJ();
return 0;
}
在c++中初始化类列表中,初始化的顺序和初始化列表中表的式的顺序没关系,它之后再类中声明顺序有关,在上面例子中this->i的值是不可预知的。
c++ Primer:每个成员在初始化列表中只能出现一次,初始化的顺序不是由名字在初始化列表中的顺序决定,而是由成员在类中的被声明顺序决定。