Effective C++读书笔记(三)
条款13: 以对象管理资源
- 获得资源后立刻放进管理对象内
- 管理对象运用析构函数确保资源被释放
- 常被使用的管理对象有shared_ptr, unique_ptr和auto_ptr,auto_ptr的复制会使它(被复制物)指向null
条款14: 在资源管理类中小心copying行为
- 复制管理对象会一并复制他所管理的资源,所以资源的copying行为决定了管理对象的copy行为
- 通常采用的方法包括: 抑制copying,引用计数法,复制底部资源和转移底部资源的拥有权
条款15: 在资源管理类中提供对原始资源的访问
- API往往要求访问原始资源,故每一个class都应该提供一个”取得其对应资源”的方法
- 显式转换:提供get方法(安全)
- 隐式转换:隐式转换函数(方便)
条款16: 成对使用new和delete时要采取相同形式
- 如果在new表达式中使用[ ],必须在相应的delete中使用[ ]
条款17: 以独立语句将new对象置入智能指针
- 防止异常被抛出时,有可能导致难以察觉的资源泄露