有关C++类的初始化列表问题
class A
{
public:
A()
{
printf("A ");
}
~A()
{
printf("~A ");
}
};
class B
{
public:
B(A &a):_a(a)
{
printf("B ");
}
~B()
{
printf("~B ");
}
private:
A _a;
};
int main()
{
A a;
B b(a);
return 0;
}
输出选项:1、A A B ~B ~A ~A
2、A B ~B ~A ~A
当把B得构造函数改为:
B(A &a)
{
printf("B ");
_a = a;
}
又是选哪个答案呢?为什么呢?请各位大侠不胜赐教!!!