美文网首页C++ 杂记
条款 14:在资源管理类中小心 copying 行为

条款 14:在资源管理类中小心 copying 行为

作者: 赵者也 | 来源:发表于2017-07-23 10:19 被阅读0次

    Effective C++ 中文版 第三版》读书笔记

    ** 条款 14:在资源管理类中小心 copying 行为 **

    RAII 守则:资源在构造期间获得,在析构期间释放。

    许多时候允许 RAII 对象被复制并不合理。我们可以考虑:

    1.禁止复制。

    (1)将 copying 操作声明为 private
    (2)或者设计一个不可以被复制的类

    像 Toby 类这样:

    class Toby: private UncopyToby{
    public:
        ...
    }
    

    2.对底层资源使用 “引用计数法”。

    而许多时候,使用资源管理类,我们需要:
    (1)复制底部资源
    (2)转移底部资源的拥有权

    这个是 auto_ptr 奉行的复制意义

    请记住:

    1. 复制 RAII 对象必须一并复制它所管理的资源,所以资源的 copying 行为决定 RAII 对象的 copying 行为
    2. 普通而常见的 RAII class copying 行为是:抑制 copying、实行引用计数法。不过其他行为也都可能被实现。

    相关文章

      网友评论

        本文标题:条款 14:在资源管理类中小心 copying 行为

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