下面代码的输出是什么?
class A
{
public:
A() { }
~A() { cout<<"~A"<<endl; }
};
class B:public A
{
public:
B(A &a):_a(a)
{
}
~B()
{
cout<<"~B"<<endl;
}
private:
A _a;
};
int main(void)
{
A a; //很简单,定义a的时候调用了一次构造函数
B b(a);
}







# include <iostream> using namespace std; class A { public: A() { cout<<"create A"<<endl; } A(const A& other){ cout<<"copy A"<<endl;} //复制构造函数 ~A() { cout<<"~A"<<endl; } }; class C { public: C() { cout<<"create C"<<endl; } C(const A& other){ cout<<"copy C"<<endl;} //复制构造函数 ~C() { cout<<"~C"<<endl; } }; class B:public A { public: B() { cout<<"create B"<<endl; } ~B() { cout<<"~B"<<endl; } private: C _a; }; int main(void) { B b; cout<<"------------------------"<<endl; }