程序如下,为什么结果是:
A
B
~B
~A
~A
而不是:
A
A
B
~B
~A
~A
呢,求解答!!!
class A
{
public:
A(){cout<<"A"<<endl;}
~A(){cout<<"~A"<<endl;}
};
class B
{public:
B(A &a):_a(a){cout<<"B"<<endl;}
~B(){cout<<"~B"<<endl;}
private:
A _a;
};
int main()
{
A a; //调用A的构造函数输出A
B b(a); //为什么这里不先调用基类A的构造函数呢?????????????????
return 0;
}
//只分配了,一个空间但是自动释放了两次。