Chapter 3. Resource Management(资源管理)
作者:Scott Meyers
译者:fatalerror99 (iTePub's Nirvana)
发布:http://blog.csdn.net/fatalerror99/
resource(资源)是这样一些东西:一旦你不再使用它,你需要把它还给系统。如果你不这样做,有百害而无一利。在 C++ 程序中,最普遍使用的资源是 dynamically allocated memory(动态分配的内存)(如果你分配了内存却从不释放,就会导致 memory leak(内存泄漏)的后果),但是内存仅仅是很多你必须管理的资源中的一种。其它常用资源包括 file descriptors(文件描述符),mutex locks(互斥锁),fonts and brushes in graphical user interfaces (GUIs)(图形用户界面中的字体和画刷),database connections(数据库连接)和 network sockets(网络套接字)。无论哪种资源,当你不再使用它的时候,将它释放都是非常重要的。
试图徒手确保这一点在任何条件下都是困难的,但是当你考虑到异常,带有多条返回路径的函数,以及在没有充分理解他所做的修改的影响的情况下就去更改软件的维护程序员,处理 resource management(资源管理)的特别方法很不充分这一现状就变得很清楚了。
这一章以一个建立在 C++ 对 constructors(构造函数),destructors(析构函数)和 copying operations(拷贝操作)的支持之上的,简单易懂的,object-based(基于对象)的资源管理方法开始。经验表明严格坚持这一方法能消除差不多全部的资源管理问题。接着,本章转移到专注于 memory management(内存管理)这一特定主题的 Item 中。这些后面的 Item 补充前面那些更一般化的 Item,因为管理内存的 objects(对象)必须知道如何正确地进行工作。
本章包括以下内容,点击打开:
Item 13: Use objects to manage resources
Item 14: Think carefully about copying behavior in resource-managing classes
Item 15: Provide access to raw resources in resource-managing classes
Item 16: Use the same form in corresponding uses of new and delete
Item 17: Store newed objects in smart pointers in standalone statements