#include <iostream>
#include <string>
#include <vector>
class A{
public:
A():a(5),b(a)
{
std::cout<<"a:b="<<a<<":"<<b<<std::endl;
}
private:
int b;
int a;
};
class B{
public:
B():c(a+b),b(a),a(129132)
{
std::cout<<"a:b="<<a<<":"<<b<<std::endl;;
std::cout<<"c="<<c<<std::endl;;
}
private:
int a;
int b;
int c;
};
int main()
{
A a;
B b;
return 0;
}
运行结果:
a:b=5:0
a:b=129132:129132
c=258264
说明成员函数的构造顺序,完全取决于成员定义的先后,和B():c(a+b),b(a),a(129132) 这里的顺序没有关系。