Effective C++ --3 资源管理
来源:互联网 发布:js里的on是什么意思 编辑:程序博客网 时间:2024/06/08 17:59
上一部分Effective C++ --2 构造/析构/赋值运算
13、以对象管理资源
(1)为了防止new后提前return等没有执行delete造成内存泄露,利用RAII(resource acquisition is initialization,资源取得时便是初始化时机)对象。
(2)两个常被使用的RAII对象auto_ptr和tr1::shared_ptr。两者都是智能指针,其析构函数自动对其所指对象调用delete。前者有所有权的概念,复制等操作会有所有权的转移;后者支持RCSP(reference-counting smart pointer,引用计数型智能指针),通常是较佳选择,因为其copy比较直观。
14、在资源管理类中小心copying行为
(1)复制RAII对象进行的是深度拷贝,不论指针或是指针所指内存都被复制。
(2)普遍的RAII对象copying行为是:抑制copying、施行引用计数法。前者将copying操作声明为private;后者使用shared_ptr,还可以指定删除器,当引用计数为0时自动调用删除器。
15、在资源管理类中提供对原始资源的访问
(1)APIs往往要求访问原始资源,所以每一个RAII对象都应该提供一个“取得其所管理之资源”的方法。方法有两种:显式和隐式。显示通过get()得到;隐式提供隐式转换函数,将资源返回。
16、成对使用new和delete时采用相同的形式
(1)new和delete(单个对象),new[]和delete[](一组对象),使用形式一致。
(2)不要对数组形式做typedefs动作,容易造成上述规则出错。(对数组做typedefs是为了用到相同类型和大小的数组时方便使用,最好不要这么做。)
17、以独立语句将newed对象置入智能指针
(1)分离语句,将newed对象置于智能指针内,否则一旦抛出异常,可能造成内存泄露。
- effective C++: 3资源管理
- <<Effective C++>>读书笔记3: 资源管理
- <Effective C++: 资源管理> 笔记
- Effective C++(三)资源管理
- effective c++-资源管理
- 《Effective C++》资源管理章节
- effective c++:资源管理相关
- Effective C++ --3 资源管理
- 《Effective C++》读书笔记之中资源管理
- Effective C++(三)资源管理
- Effective C++——资源管理
- 《Effective C++》第三章:资源管理
- 【读书笔记】Effective C++—3 资源管理(之3)
- 【读书笔记】Effective C++—3 资源管理(之1)
- 【读书笔记】Effective C++—3 资源管理(之2)
- 【读书笔记】Effective C++—3 资源管理(之4)
- Effective C++读书笔记3(资源管理)
- Effective C++之3 资源管理
- J-link工具的使用
- 大数据工程人员知识图谱
- 深度揭秘:《红楼梦》到底讲了些什么?
- 性能测试的目的
- 初识frameset
- Effective C++ --3 资源管理
- vim map自定义快捷键
- 黑马程序员_5JAVA基础 继承 final的用法以及抽象类的特点
- eXpress Persistent Objects (XPO)入门教程三:创建Persistent Class
- Qt控件美化
- hive 时间处理函数
- ios开发常见错误
- 虚拟网络感知技术
- Text Control用Next字段实现交替行颜色