最佳答案
我正在为 C + + 中的一个共享指针编写一个访问器方法,它是这样的:
class Foo {
public:
return_type getBar() const {
return m_bar;
}
private:
boost::shared_ptr<Bar> m_bar;
}
因此,为了支持 getBar()的常量,返回类型应该是 boost::shared_ptr,以防止修改它所指向的 Bar。我的 猜猜看是我想返回的 shared_ptr<const Bar>类型,而 const shared_ptr<Bar>可以阻止指针本身重新指向另一个 Bar,但允许修改它指向的 Bar... ... 然而,我不确定。如果有人能证实这一点,或者纠正我的错误,我将不胜感激。谢谢!