关于析构函数调用顺序的问题
函数如下:#include<iostream>
using namespace std;
class A
{
public:
A(){}
virtual void func(){cout<<"Destructor A"<<endl;}
~A(){func();}
};
class B:public A
{
public:
B(){}
void func(){cout<<"Destructor B"<<endl;}
~B(){func();}
};
void main()
{
B b;
A&a=b;
}
运行结果是:destructor B
destructor A
析构不是按照先构造的后析构的原则吗?先定义的B类后定义A类不是应该后析构B的吗???
在线求解答啊!先谢谢了