这是一个基本的问题,但我没有找到之前关于它的帖子。以下问题的标题听起来可能与我的问题相同,但问题本身与标题不匹配:is it better to use shared_ptr.reset or operator =?
我对std::shared_ptr
的reset()
成员函数的用途感到困惑:除了赋值运算符之外,它还贡献了什么?
具体地说,给出了定义:
auto p = std::make_shared<int>(1);
P= std::make_shared(5);p.reset(new int(5));
P= nullptr;p.reset();
如果这两行在两种情况下都是等价的,那么reset()
的用途是什么?
编辑:让我重新表述这个问题,以更好地强调其要点。问题是:有没有这样一种情况,reset()
让我们实现了一些没有它就不容易实现的事情?
https://stackoverflow.com/questions/31438714
复制相似问题