返回智能指针时的最佳做法是什么,例如 boost::shared_ptr?我应该按标准返回智能指针还是底层原始指针?我来自 C#,所以我倾向于总是返回智能指针,因为它感觉不错。像这样(跳过更短代码的 const 正确性):
class X
{
public:
boost::shared_ptr<Y> getInternal() {return m_internal;}
private:
boost::shared_ptr<Y> m_internal;
}
但是,我见过一些经验丰富的编码人员返回原始指针,并将原始指针放入向量中。正确的方法是什么?