【问题标题】:Unreference shared_ptr取消引用 shared_ptr
【发布时间】:2017-05-02 23:54:36
【问题描述】:

我知道两种方法:

// Declared somewhere but not on stack
shared_ptr<X> xptr = make_shared<X>();

xptr = nullptr;  //#1
xptr.reset();  //#2

至于我#1看起来更好,但从C++的角度来看更好

【问题讨论】:

    标签: c++11 memory-management shared-ptr


    【解决方案1】:

    客观上两者都不是更好。几乎在每一种情况下,差异都是纯粹的审美。

    我能想到的唯一例外是编写一个通用函数模板,它可以同时使用智能指针和裸指针。只有ptr = nullptr 是裸指针的有效语法。

    仅当指针不为空时,赋值和重置成员函数的行为不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-20
      • 2013-09-17
      • 1970-01-01
      • 2013-05-21
      • 1970-01-01
      • 2012-09-05
      • 2017-06-18
      • 2017-01-03
      相关资源
      最近更新 更多