我想知道现在从函数返回指向多态对象的指针时被认为是最佳实践,例如在使用工厂时。如果我转让所有权,我应该归还boost::unique_ptr<Interface>
吗?如果我不转让所有权(例如返回对成员的引用),我应该返回什么?是否有另一种常用的非基于提升的方法?谢谢。
编辑:它应该与 C++03 兼容,可以轻松升级到 0x
EDIT2:请注意,我明确询问常见方法、最佳实践,而不仅仅是“一种方法”。暗示将来对代码库进行条件搜索和替换的解决方案看起来不是一个好习惯,不是吗?
EDIT3:关于 auto_ptr 的另一点是它已被弃用,无论它多么整洁,所以在接口级别宣传它的使用看起来很奇怪。然后,不知情的人会将返回的指针放入 STL 容器中,以此类推。因此,如果您知道另一种常见的解决方案,非常欢迎您添加答案。