读书人

求教下头程序的输出结果是多少

发布时间: 2013-09-28 10:01:20 作者: rapoo

求教下面程序的输出结果是多少?
class A
{
public:
A() { cout<<"A"<<endl; }
~A() { cout<<"~A"<<endl; }
};

class B:public A
{
public:
B(A &a):_a(a)
{
cout<<"B"<<endl;
}
~B()
{
cout<<"~B"<<endl;
}
private:
A _a;
};

int main(void)
{
A a;
B b(a);
return 0;
}
[解决办法]

引用:
能详细讲一下吗(怎么构造了三次)?谢谢。

你把下面的代码运行一下就明白了。

class A 
{
public:
A() { cout<<"A"<<endl; }
A(const A&) { cout<<"A"<<endl; }
~A() { cout<<"~A"<<endl; }
};

class B:public A
{
public:
B(A &a):_a(a)
{
cout<<"B"<<endl;
}
~B()
{
cout<<"~B"<<endl;
}
private:
A _a;
};

int main(void)
{
A a;
B b(a);
return 0;
}

读书人网 >C++

热点推荐