博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【M9】利用destructors避免泄漏资源
阅读量:6920 次
发布时间:2019-06-27

本文共 341 字,大约阅读时间需要 1 分钟。

1、在堆上获取的动态资源,用户忘记delete,或者由于异常导致没有没执行到delete,都会造成资源泄漏。

2、我们知道,栈上的对象,离开作用域,必定要执行析构方法。即使抛出异常,会堆栈回滚,保证已经构造的对象进行析构。

3、因此,可以使用栈上的对象,管理资源,在析构方法中释放资源,保证不会资源泄漏。

4、考虑更一般化的资源,对于互斥体的加锁,解锁,也是同样的情况,需要保证互斥体一定会解锁。

5、对资源管理的类,就是智能指针。因此,需要对不同类型的对象进行管理,智能指针是模板类,在栈上分配,行为像指针。常用的智能指针有auto_ptr,shared_ptr。注意,智能指针默认的删除动作是delete。当然,也可以传递删除器给智能指针,也就是智能指针析构的时候,调用的方法。

转载地址:http://qwecl.baihongyu.com/

你可能感兴趣的文章
Kubernetes 新概念 “Initializers”解析(上):能让你为集群编写插件的新模型
查看>>
sql server 高可用故障转移(完结)
查看>>
MSSQL sql server order by 1,2 的具体含义
查看>>
蚂蚁的开放:想办法摸到10米的篮筐
查看>>
WPF 线程:使用调度程序构建反应速度更快的应用程序
查看>>
使用Docker(Mac)搭建 Nginx/Openresty - Kafka - kafkaManager
查看>>
“搜狗分身”技术正式亮相乌镇,携手新华社发布全球首个AI合成主播
查看>>
WPF 启动唯一程序(项目,exe,实例)
查看>>
lecture 2:more Objective-C and Demo
查看>>
Storm源码分析--Nimbus启动过程
查看>>
iOS的Cookie管理
查看>>
利用优酷云SDK仿今日头条短视频播放
查看>>
NSA 将向公众开源逆向工程工具 GHIDRA
查看>>
DKHadoop大数据平台架构详解
查看>>
从品钛IPO看,如何判断一家金融科技公司的科技底色
查看>>
C语言基础——循环详解!
查看>>
基于 OpenResty 的 API 网关 Orange 正式发布 0.7 版本
查看>>
从零开始学设计模式(六)—适配器模式(Adapter Pattern)
查看>>
基于tensorflow的一元二次方程回归预测
查看>>
CNCC 2018 经典计算机算法技术论坛全解读 | CNCC 2018
查看>>