Estoy escribiendo un método de acceso para un puntero compartido en C ++ que es algo como esto:
class Foo {
public:
return_type getBar() const {
return m_bar;
}
private:
boost::shared_ptr<Bar> m_bar;
}
Por lo tanto, para admitir la constancia del getBar()tipo de retorno debe haber un boost::shared_ptrque evite la modificación del Barque apunta. Mi conjetura es que shared_ptr<const Bar>es el tipo que quiero volver a hacer eso, mientras que const shared_ptr<Bar>impediría la reasignación del propio puntero al punto a otro Bar, sino permitir la modificación de la Barque apunte a ... Sin embargo, no estoy seguro. Le agradecería que alguien que esté seguro pudiera confirmar esto o corregirme si me equivoco. ¡Gracias!
constnormalmente modifica lo que lo precede, por lo que T *constes un constpuntero Ty T const*es un puntero const T. Y es mejor evitar usar constnada antes.
T *consty T const *es la misma que la diferencia entre const shared_ptr<T>yshared_ptr<const T>
*y->confirmarlo.