问题及代码:
/*copyright 计算机与控制工程学院
文件名称:阅读程序
完成日期:2016/5/24
作者:马艳艳
*/
#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;
}
运行结果:
结果分析:
- 虚析构函数先调用派生类的析构函数然后再调用基类的析构函数。
- 故先输出X,然后调用~BASE()函数,输出Y;