Welcher ist der korrekte Weg, um die const Korrektheit einer Klasse zu seinen spitzen Mitgliedern zu erweitern? In dem Beispielcode, wird die konstante Version der Methode get ein std::shared_ptr
erstellen, deren Referenzzähler ist das gleiche wie das interne Mitglied m_b
, oder beginnt es wieder von 0
zu zählen?Gemeinsame Zeiger und const Korrektheit
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;
}
}
Vielleicht möchten Sie implementieren auch 'get_const_b()', analog Methoden 'CBEGIN()' und 'cend()' von Standardcontainern (http://en.cppreference.com/w/cpp/container/vector/begin). – filipos