问题及代码:
/*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:崔青青
*完成日期:2016年5月26日
*版 本 号:v1.0
*问题描述:阅读下面程序,并写出运行结果。
*输入描述:无
*输出描述:无
*/
#include <iostream>
using namespace std;
class BASE
{
private:
char c;
public:
BASE():c('y'){}
virtual~BASE(){cout<<c;}
};
class DERIVED:public BASE
{
private:
char c;
public:
DERIVED():c('x'){}
~DERIVED(){cout<<c;}
};
int main()
{
BASE *p=new DERIVED;
delete p;
return 0;
}
运行结果:
知识点总结:
老师给的例子去掉virtual的结果还是跟原来的一样,我根据虚析构函数那节课的内容改了一下,去掉virtual和原来的结果不一样。
学习心得:
基类定义了虚析构函数,派生类的虚析构函数也都是虚析构函数。
本文通过一个C++程序实例,探讨了虚析构函数的作用及其对派生类析构过程的影响。通过对比有无virtual关键字的情况,展示了如何正确释放派生类对象所占用的资源。

被折叠的 条评论
为什么被折叠?



