我正在为C ++中的共享指针编写访问器方法,该方法如下所示:
class Foo {
public:
return_type getBar() const {
return m_bar;
}
private:
boost::shared_ptr<Bar> m_bar;
}
因此,要支持getBar()
return类型的常量性,应boost::shared_ptr
防止Bar
它指向的修改。我的猜测是shared_ptr<const Bar>
要返回该类型的类型,而const shared_ptr<Bar>
这将防止指针本身重新分配以指向不同的对象,Bar
但允许Bar
对其指向的对象进行修改。但是,我不确定。如果知道的人可以确认这一点,或者如果我弄错了,请更正我,我将不胜感激。谢谢!
@ H2CO3完全没有。在
—
James Kanze
const
通常修改什么_precedes,所以T *const
是一个const
指针T
,并且T const*
是一个指针const
T
。最好避免const
在它之前没有使用任何东西。
@JamesKanze,这是H2CO3的观点:之间的区别
—
乔纳森Wakely
T *const
和T const *
相同的区别 const shared_ptr<T>
和shared_ptr<const T>
*
并->
进行确认。