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对象置入智能指针

  • 防止异常被抛出时,有可能导致难以察觉的资源泄露