现在shared_ptr
是在 tr1 中,你认为使用应该会发生什么std::auto_ptr
?它们都有不同的用例,但所有用例auto_ptr
可以用以下方法解决shared_ptr
, 也。你会放弃吗auto_ptr
或者在您想明确表示在任何给定点只有一个类拥有所有权的情况下继续使用它?
我的看法是使用auto_ptr
可以通过添加代码设计的细微差别和指示来增加代码的清晰度,但另一方面,它在培训新程序员时又增加了另一个微妙的问题:他们需要了解智能指针以及它们如何使用的细节。工作。当你在任何地方只使用一个智能指针时,你可以制定一条规则“将所有指针包装在shared_ptr
’然后就完成了。
您对此有何看法?
auto_ptr 在签名中也很不错。当一个函数接受一个auto_ptr<T>
从价值来看,这意味着它将消耗T
。如果一个函数返回一个auto_ptr<T>
,很明显它放弃了所有权。这可以传达您对一生的意图。
另一方面,使用scoped_ptr<T>
意味着你不想关心的生命周期T
。这也意味着您可以在更多地方使用它。这两个智能指针都是有效的选择,您当然可以在一个程序中同时拥有这两个智能指针。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)