【发布时间】:2012-05-25 11:49:39
【问题描述】:
假设我有一个类,其方法返回 shared_ptr。
按引用或按值返回它可能有哪些好处和坏处?
两个可能的线索:
-
早期对象销毁。如果我通过 (const) 引用返回
shared_ptr,则引用计数器不会增加,因此当对象在另一个上下文中超出范围时,我会面临被删除的风险(例如另一个线程)。它是否正确?如果环境是单线程的,是否也会出现这种情况? - 成本。价值传递当然不是免费的。是否值得尽可能避免?
谢谢大家。
【问题讨论】:
标签: c++ return smart-pointers