程序:
#include <iostream>
using namespace std;
class BASE
{
private:
char c;
public:
BASE(char n):c(n) {}
virtual ~BASE()
{
cout<<c;
}
};
class DERIVED:public BASE{
private:
char c;
public:
DERIVED(char n):BASE(n+1),c(n) {}
~DERIVED()
{
cout<<c;
}
};
int main(){
DERIVED d('X');
return 0;
}
//析构函数执行顺序:先释放派生类,再释放基类。
//main()函数中给派生类'x',派生类中构造函数又给基类'x'+1,即为'y'
//根据析构函数顺序,先输出x,在输出y
结果: