文章目录
- 13. 以对象管理资源(Use objects to manage resources)
- 14. 在资源管理类中小心copying行为(Think carefully about copying behavior in resource-managing classes)
- 15. 在资源管理类中提供对原始资源的访问(Provide access to raw resources in resource-managing classes)
- 16. 成对使用new和delete时要采用相同形式(Use the same form in corresponding uses of new and delete)
- 17. 以独立语句将newed对象置入智能指针(Store newed objects in smart pointers in standalone statements)

这几条规则来源自书的第二章, 资源管理,这些机制实际上已经被标准库所采用,并且实现成了一系
列的工具提供给我们使用,比如std::shared_ptr等。
13. 以对象管理资源(Use objects to manage resources)
所谓以对象管理资源是指,利用对象离开其作用域后析构函数自动调用的特点,将资源的释放操作放入对象的析构函数。同时,为了防止资源泄露(见下面例子),资源的获取也放在对象的构造函数中。
请记住:
(1).为防止资源泄漏,请使用RAII(Resource Acquisition Is Initialization,资源取得时机便是初始化时机)对象,它们在构造函数中获得资源并在析构函数中释放资源。
(2).两个常被使用的RAII classes分别是std::shared_ptr和auto_ptr。前者通常是较佳选择,因为其copy行为比较直观。若选择auto_ptr,复制动作会使它(被复制物)指向null。
auto_pt