c++ 虚析构函数
来源:互联网 发布:经济数据点评 编辑:程序博客网 时间:2024/06/03 13:20
c++必须使用虚析构函数的要点:
1.该类分配了资源,而这些资源又不会由成员函数自动释放;
2.通常在构造函数中包含new操作,析构函数中包含delete操作;
3.虚析构函数只有在该类为基类的情况下才有用,即该类被继承的情况;
下面的示例显示了,当基类base的析构函数为虚析构函数和非虚析构函数的情况下,析构函数的调用情况:
头文件1:
class base{public:base(void);~base(void);};class derive : public base{public:derive(void);~derive(void);};
头文件2:
class base{public:base(void);virtual ~base(void);};class derive : public base{public:derive(void);~derive(void);};
源文件:
base::base(void){printf("base constructor ...\n");}base::~base(void){printf("base destructor ...\n");}derive::derive(void){printf("derive constructor ...\n");}derive::~derive(void){printf("derive destructor ...\n");}
调用情况:
base *p = new derive;delete p;
输出情况:
析构函数为非虚函数的情况:
base constructor ...
derive constructor ...
base destructor ...
析构函数为非虚函数的情况:
base constructor ...
derive constructor ...
derive destructor ...
base destructor ...
- C++-----虚析构函数
- C++----虚析构函数
- C++【浅谈虚析构函数】
- C++_虚析构函数
- 【c++】虚析构函数
- (C++)虚析构函数
- C++---------之--------【虚析构函数】
- 【C/C++】C++虚析构函数的作用
- [C/C++]C函数
- 【C++】正确使用虚析构函数
- c++------------之---【虚析构函数应用】
- <C++>析构函数、虚析构函数和构造函数
- c 函数
- C函数
- C 函数
- C函数
- 【C++】函数
- C 函数
- 查看mysql表结构的方法有三种
- MVC 文件上传和图片上传
- hdu 4251 The Famous ICPC Team Again--划分树
- select设置超时------(1)使用说明.另附带setsockopt使用讲解
- mapInfo文件格式详解
- c++ 虚析构函数
- 系统HANG住了,怎么办?
- 混响音效
- IT职场人生系列之二十三:知识体系(专家与杂家)
- Git教程【译】
- Build Cookbook
- Treeview绑定数据库
- display:table实现分页功能的例子
- MySQL索引背后的数据结构及算法原理