/*
*Copyright(c) 2016,烟台大学计算机学院
*作 者:刘金石
*完成日期:2016年5月21日
*问题描述:虚析构函数练习
*/
#include<iostream>
using namespace std;
class BASE
{
char c;
public:
BASE(char n):c(n){}
virtual ~BASE(){cout<<c;}
};
class DERIVED:public BASE
{
char c;
public:
DERIVED(char n):BASE(n+1),c(n){}
~DERIVED(){cout<<c;}
};
int main()
{
DERIVED d('X');
return 0;
}
程序分析:
虚析构函数先调用派生类的析构函数然后再调用基类的析构函数。
故先输出X,然后调用~BASE()函数,输出Y;
运行结果: