【发布时间】:2013-04-15 14:48:33
【问题描述】:
我有一个关于 C++11 最佳实践的问题。清除shared_ptr时,我应该使用不带参数的reset()函数,还是应该将shared_ptr设置为nullptr?例如:
std::shared_ptr<std::string> foo(new std::string("foo"));
foo.reset();
foo = nullptr;
有什么真正的区别,或者这两种方法都有优点/缺点吗?
【问题讨论】:
-
foo = {}也是一种选择! -
这个怎么样 ->
std::shared_ptr<std::string> bar; foo = bar?通常,当我们将 shared_ptr 分配给另一个时,它指向的对象的引用计数会增加。在这种情况下会发生什么?
标签: c++ c++11 shared-ptr reset nullptr