虚函数中的析构函数
来源:互联网 发布:淘宝店铺添加客服帐号 编辑:程序博客网 时间:2024/06/07 01:20
析构函数执行时先调用派生类的析构函数,其次才调用基类的析构函数。如果析构函数不是虚函数,而程序执行时又要通过基类的指针去销毁派生类的动态对象,那么用delete销毁对象时,只调用了基类的析构函数,未调用派生类的析构函数。这样会造成销毁对象不完全。
#include<iostream.h>
#include<stdlib.h>
class CPerson
{
public:
protected:
};
class CStudent:public CPerson
{
public:
protected:
};
CPerson::~CPerson()
{
}
CStudent::~CStudent()
{
}
void main()
{
}
输出:
~Student!
~CPerson!
CStudent对象已经完成析构
~Student!
~CPerson!
如果去掉~CPerson()前面的virtual,且将“CStudent对象已经完成析构”改为“CStudent对象未完成析构”。程序的执行结果为:
~CPerson!
CStudent对象未完成析构
~Student!
~CPerson!
- 虚函数中的析构函数
- 构造函数和析构函数中的虚函数调用
- 构造函数和析构函数中的虚函数调用
- 构造函数和析构函数中的虚函数
- 构造函数和析构函数中的虚函数
- 构造函数 析构函数 中的虚函数
- C++中的构造函数、虚函数、析构函数
- C++中的构造函数/析构函数,虚函数/纯虚函数
- 虚析构函数和析构函数中的虚机制
- C++中的析构函数为什么通常为虚函数
- C++中的构造函数+拷贝构造函数+析构函数
- 构造析构中的虚函数
- 虚函数在构造函数和析构函数中的应用
- 构造函数中的虚函数
- C#中的析构函数
- C#中的析构函数
- C#中的析构函数
- C#中的析构函数
- 实现flash遮挡
- csdn的移动游戏开发频道
- 访问远程网址
- 战术弹道导弹拦截的数学建模与仿真
- DEBUG_NEW 与GDI+ 有冲突
- 虚函数中的析构函数
- ajax学习篇7
- 左右菜单
- 重复记录的查询和删除
- c# XML操作 dom sax解析
- Java Collection
- 个人品牌战略
- Java 多线程深入浅出
- 通过sscanf处理GPS信息