Estou escrevendo um método de acesso para um ponteiro compartilhado em C ++ que funciona mais ou menos assim:
class Foo {
public:
return_type getBar() const {
return m_bar;
}
private:
boost::shared_ptr<Bar> m_bar;
}
Portanto, para oferecer suporte à constância getBar()do tipo de retorno deve ser um boost::shared_ptrque evite a modificação do que Barele aponta. Meu palpite é que esse shared_ptr<const Bar>é o tipo que eu quero retornar para fazer isso, ao passo const shared_ptr<Bar>que impediria a reatribuição do próprio ponteiro para apontar para um diferente, Barmas permitiria a modificação do para o Barqual ele aponta ... No entanto, não tenho certeza. Eu agradeceria se alguém que sabe com certeza pudesse confirmar isso ou me corrigir se eu errar. Obrigado!
constnormalmente modifica o que _precede, então T *consté um constponteiro para Te T const*é um ponteiro para const T. E é melhor evitar o uso constsem nada antes disso.
T *conste T const *é a mesma que a diferença entre const shared_ptr<T>eshared_ptr<const T>
*e->confirmar isso.