我正在为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>
*并->进行确认。