Qual è il modo corretto per estendere la correttezza di const di una classe ai relativi membri appuntiti? Nel codice di esempio, la versione costante del metodo get crea un std::shared_ptr
il cui contatore di riferimento è lo stesso del membro interno m_b
o sta ricominciando a contare da 0
?Puntatori condivisi e correttezza const
class A
{
std::shared_ptr<B> m_b;
public:
std::shared_ptr< const B > get_b() const
{
return m_b;
}
std::shared_ptr<B> get_b()
{
return m_b;
}
}
Si potrebbe desiderare di implementare anche 'get_const_b()', analogo a metodi 'CBEGIN()' e 'cend()' dei contenitori standard (http://en.cppreference.com/w/cpp/container/vector/begin). – filipos