c++学习-->析构函数
来源:互联网 发布:北京java培训哪个好些 编辑:程序博客网 时间:2024/06/06 04:57
析构函数
与构造函数相反, 析构函数是在对象被撤销时被自动调用, 用于对成员撤销时的一些清理工作, 例如在前面提到的手动释放使用 new 或 malloc 进行申请的内存空间。析构函数具有以下特点:
■ 析构函数函数名与类名相同, 紧贴在名称前面用波浪号 ~ 与构造函数进行区分, 例如:~Point();
■ 构造函数没有返回类型, 也不能指定参数, 因此析构函数只能有一个, 不能被重载;
■ 当对象被撤销时析构函数被自动调用, 与构造函数不同的是,析构函数可以被显式的调用, 以释放对象中动态申请的内存。
当用户没有显式定义析构函数时, 编译器同样会为对象生成一个默认的析构函数, 但默认生成的析构函数只能释放类的普通数据成员所占用的空间, 无法释放通过 new 或 malloc 进行申请的空间, 因此有时我们需要自己显式的定义析构函数对这些申请的空间进行释放, 避免造成内存泄露。
如果需要显式调用析构函数来释放对象中动态申请的空间只需要使用 对象名.析构函数名(); 即可, 例如上例中要显式调用析构函数来释放 bookName 所指向的空间只要:
CPP.~Book();
- 【学习C++】学习C++ -> 构造函数与析构函数
- 学习C++——构造函数和析构函数
- C/C++学习笔记:String类的构造函数、析构函数和赋值函数
- 析构函数(C#)
- C++--------析构函数
- c++::析构函数
- C++-析构函数
- [C学习]Main函数
- [C学习]函数(?)
- C函数指针学习
- C++:函数<学习笔记>
- C语言函数学习
- C语言学习-函数
- C函数学习
- C语言学习:函数
- 学习C++(构造函数,析构函数和赋值操作符)
- C++学习笔记11 构造函数与析构函数
- 一步一步学习C++(类)之构造函数与析构函数
- 重写TiledServiceLayer实现本地缓存
- SQL 两表关联 查询出A表中有但是B表中没有的数据
- 003 apache mina IoBuffer
- 童牧晨玄 # 科学思考与做正确的事 阅读笔记
- 汽车各部位名称及故障处理
- c++学习-->析构函数
- php练习——用for循环打印半金字塔、金字塔、正方形、倒金字塔、菱形、空心图形等
- jquery实现控制表格行高亮
- OV9650摄像头驱动分析 (2.6.35)
- g++: error trying to exec 'cc1plus': execvp: 没有那个文件或目录
- Bugfree使用手册
- opencv提取视频每一帧
- 童牧晨玄 # 丰富多彩的危害 阅读笔记
- mysql join