最佳答案
我正在为 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
... ... 然而,我不确定。如果有人能证实这一点,或者纠正我的错误,我将不胜感激。谢谢!