【发布时间】:2013-08-20 12:35:14
【问题描述】:
两者有什么区别:
std::shared_ptr<int> p = std::shared_ptr<int>( new int );
和
std::shared_ptr<int> p = std::make_shared< int >();
?
我应该更喜欢哪一个?为什么?
P。 S. 很确定这个问题一定已经回答过了,但我找不到类似的问题。
【问题讨论】:
-
第二个必须是
std::make_shared<int>()。 -
是的,但在这种情况下不是。始终使用
make_shared。有关详细信息,请参阅以下 URL:herbsutter.com/2013/05/29/gotw-89-solution-smart-pointers -
@Deduplicator:我的问题怎么会和一年后的问题重复?
-
@VioletGiraffe:我认为另一个稍微好一点,它们覆盖了相同的领域。年龄只是作为决定因素出现(尽管不幸的是它在解释性文本中过于突出),并且年龄较大的问题有更高的机会被完善。
-
@Deduplicator:很公平。虽然我觉得我的标题也更清楚了。
标签: c++ c++11 shared-ptr smart-pointers