13 以对象管理资源
- 为防止资源泄露,需要使用RAII 对象,它们在构造函数中获得资源,在析构函数中释放资源。
- 使用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.