zoukankan      html  css  js  c++  java
  • 资源管理

    资源管理

    所谓资源就是,一旦用了它,将来必须还给系统.

    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对象存储于(置入)智能指针内.如果不这样做,一旦异常被抛出,有可能导致难以察觉的资源泄露.
  • 相关阅读:
    空悬指针、野指针、内存泄漏、内存溢出
    自定义消息的操作方法ON_MESSAGE(..)
    为什么static成员变量一定要在类外初始化?
    Ubuntu 系统目录结构
    Beyond Compare 4 30天评估期结束的解决办法
    C++ string 字符串 结尾 标志
    C语言——枚举类型用法
    结构体struct-联合体union-枚举enum
    网卡bood
    kvm 安装
  • 原文地址:https://www.cnblogs.com/o-v-o/p/10161167.html
Copyright © 2011-2022 走看看