class A
{
public:
A()
{
cout << "0";
}
virtual~A()
{
cout << "1";
}
};
class B :public A
{
public:
B()
{
cout << "2";
buf = new char[10];
}
virtual ~B()
{
delete[]buf;
cout << "3";
}
private:
char* buf;
};
int main()
{
A a;
B b;
a = b;
return 0;
}
答案是002311
这里的 a = b 起什么作用呢?
还有输出的最后一个1是怎么得到的呢?不是应该子类先析构 输出3,基类再析构 输出1 吗?为什么会多输出一个1呢?
麻烦各位看看 谢谢!!感激不尽!