资源管理
Posted o-v-o
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了资源管理相关的知识,希望对你有一定的参考价值。
资源管理
所谓资源就是,一旦用了它,将来必须还给系统.
13.以对象管理资源
- 为防止资源泄露,请使用RAII对象,他们在构造函数中获得资源并在析构函数中释放资源.
- 两个常被使用的RAII classes 对象分别是trl::shared_ptr和auto_ptr.前者通常是较佳选择,因为其copy行为比较直观.若选择auto_ptr,复制动作会使他(被复制物)指向null.
14.在资源管理类中小心copy行为
- 复制RAII对象必须一并复制它所管理的资源,所以资源的copying行为决定RAII对象的copying行为.
- 普通而常见的RAII class copying行为是: 抑制copyig,施行引用计数法(reference counting).不过其他行为也都可能被实现.
15. 在资源管理类中提供对原始资源的访问
- APIs 往往要求访问原始资源(raw resources), 所以每一个RAII class应该提供一个"取其所管理之资源"的方法.
- 对原始资源的访问可能经由显示转换或隐式转换.一般而言显式转换比较安全,但隐式转换对客户比较方便.
16.成对使用new和delete时采取相同形式
- 如果你在new表达式使用[],必须在相应的delete表达式中使用[].如果你在new表达式中不使用[],一定不要在相应的delete表达式中使用[].
17.以独立语句将newed 对象置入智能指针
- 以独立语句将newed对象存储于(置入)智能指针内.如果不这样做,一旦异常被抛出,有可能导致难以察觉的资源泄露.
以上是关于资源管理的主要内容,如果未能解决你的问题,请参考以下文章