搜索

《Effective C++:改善程序与设计的55个具体做法》阅读笔记 3——资源管理


发布时间: 2022-11-24 18:27:01    浏览次数:74 次

3 资源管理

Item 13: 使用对象管理资源

资源管理对象:资源管理对象管理着其他对象的资源,当资源管理对象的析构函数被调用时,所管理的资源会被自动释放。资源管理对象就是在其析构函数中写了释放所管理对象的资源的语句。

Resource Acquisition Is Initialization (RAII):获取一个资源并在同一个语句中初始化资源管理对象(获得资源后应该立即移交给资源管理对象),这样就可以使用资源管理对象对资源进行管理。如std::auto_ptr pInv(createInvestment());,其中createInvestment()返回资源,并利用此资源初始化pInvpInv管理的就是createInvestment()所返回的对象的资源。

书中介绍了两种资源管理类,分别为std::auto_ptrtr1::shared_ptr
std::auto_ptr:被拷贝的auto_ptr对象会被置空。
tr1::shared_ptr:拷贝操作发生时,对象的引用计数加一。

auto_ptrtr1::shared_ptr不能用于动态分配的数组,因为它们背后使用的是delete,而不是delete []。
动态数组可以使用boost::scoped_arrayboost::shared_array

免责声明 《Effective C++:改善程序与设计的55个具体做法》阅读笔记 3——资源管理,资源类别:文本, 浏览次数:74 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 06:27:01。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/codingbigdog/p/16810499.html