天天看点

13 以对象管理资源13 以对象管理资源

13 以对象管理资源

  1. 为防止资源泄露,需要使用RAII 对象,它们在构造函数中获得资源,在析构函数中释放资源。
  2. 使用std::auto_ptr, 其析构函数自动调用delete(而不是delete []),但当以copy 构造函数或者copy assignment 操作符复制它们时,它们会变成null,即不能多个auto_ptr指向同一个对象。std::tr1::shared_ptr可以达到同样的效果,而且多个shared_ptr可以指向同一个对象。这两者均是RAII classes。

注:auto_ptr 和 tr1::shared::ptr 不能使用在动态分配的array身上,原因见2.

继续阅读