美文网首页
Effective C++ 学习备忘录三

Effective C++ 学习备忘录三

作者: 仰简 | 来源:发表于2022-02-27 13:01 被阅读0次

    资源管理

    • 条款 13 - 以对象管理资源
    • 为了防止资源泄漏,请使用 RAII 对象,它们在构造函数中获取资源,在析构函数中释放资源。
    • 两个常用的 RAII classes 分别是 tr1::shared_ptr 和 auto_ptr (c++98),前者通常是较佳选择,因为其 Copy 行为比较直观。若选择 auto_ptr ,复制动作会使得被复制物指向 null。
    • 条款 14 - 在资源管理类中小心 copying 行为
    • 复制 RAII 对象必须一并复制其所管理的所有资源,所以资源 copying 行为决定 RAII 对象的 copying 行为。
    • 普遍而常见的 RAII class copying 行为是:抑制 copying ,施行引用计数法。不过其他行为也可能被实现。
    • 条款 15 - 在资源管理类中提供对原始资源的访问
    • APIs 往往要求访问原始资源,所以每一个 RAII class 应该提供一个 “取得其所管理之资源” 的办法。
    • 对原始资源的访问可能经由显式转换或者隐式转换。一般而言显式转换比较安全,但隐式转换对客户比较方便。
    • 条款 16 - 成对使用 new 和 delete 要采用相同形式
    • 如果你在 new 表达式中使用了 [],那么你在 delete 表达式中也要使用 [],如果你在 new 表达式中没有使用 [],那么你在 delete 表达式中也不要使用 []。
    • 条款 17 - 以独立语句将 newed 的对象置入智能指针中
    • 以独立语句将 newed 对象置入智能指针中,如果不这样做,一旦异常抛出,有可能导致难以察觉的资源泄漏。

    相关文章

      网友评论

          本文标题:Effective C++ 学习备忘录三

          本文链接:https://www.haomeiwen.com/subject/bkyqrrtx.html