析构函数到底都做了什么
来源:互联网 发布:淘宝仓库管理员累吗 编辑:程序博客网 时间:2024/05/22 05:53
析构函数释放对象所使用的资源,并且销毁对象的非static数据成员。
析构函数是类的一个成员函数,名字有波浪号接类名构成。没有返回值,也不接受参数,同时由于析构函数不接受参数,因此它不能重载,所以任何一个类都只具有一个析构函数。
析构函数具有一个函数体和一个析构部分。首先执行函数体,然后执行析构部分,来销毁成员,但是析构部分是隐式的。
其实析构部分就已经把成员给销毁了,那为什么还需要函数体呢?
个人认为是因为隐式销毁一个内置指针类型的成员不会delete它所指向的对象,所以需要函数体来显式销毁一个内置指针类型。
而且当指向一个对象的引用或指针离开作用域时,析构函数不会执行。此处的析构函数是指的这个对象的析构函数,但是我们可以使用智能指针shared_ptr,因为这个指针会执行析构函数,当指向这个对象的智能指针的引用计数变为0的时候,这个对象就自动被释放了。
0 0
- 析构函数到底都做了什么
- 析构函数到底做什么事情!
- openssl 初始化函数到底做了什么?
- DUPLICATE到底做了什么?
- 到底做了些什么
- 你到底做了什么
- setContentView到底做了什么
- AFNetworking到底做了什么?
- AFNetworking到底做了什么?
- AFNetworking到底做了什么
- AFNetworking到底做了什么?
- AFNetworking到底做了什么
- AFNetworking到底做了什么?
- YTKNetwork 到底做了什么
- new到底做了什么
- openSession()到底做了什么
- CocoaPods 都做了什么?
- SetContentView都做了什么
- Android 在 LinearLayout 添加分割线 divider
- Activiti设置流程发起用户信息
- 微信企业号java,主页型应用的oauth2验证
- jquery图片轮播器插件 jquery.slides
- c#事务处理(Transaction)
- 析构函数到底都做了什么
- 设置Edittext 能输入小数,
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- JAVA中的命令模式实例教程
- 20160310工作日志
- POJ 1155 树形dp
- TCP保活(TCP keepalive)
- Ajax传一个数组数据
- vim script for kernel coding