Avatar ·

Was ist der Unterschied zwischen public, protected und private Vererbung in C++?

Hallo Kollegen! Ich habe angefangen, C++ zu lernen und bin bei der Vererbung auf Verwirrung gestoßen. Ich verstehe, dass es drei Zugriffsspezifizierer gibt: public, protected und private. Aber wenn ich versuche, sie auf die Vererbung anzuwenden, bin ich verloren. Zum Beispiel habe ich eine Basisklasse: ```cpp class Base { public: int pub = 1; protected: int prot = 2; private: int priv = 3; }; ``` Ich möchte eine Klasse Derived erstellen, die von Base erbt. Ich habe versucht, `class Derived : public Base`, `class Derived : protected Base` und `class Derived : private Base` zu schreiben. In jedem Fall ist das Verhalten anders, aber ich kann nicht verstehen, worin genau der Unterschied besteht. Warum kann ich zum Beispiel bei private-Vererbung nicht von außen auf pub zugreifen? Und was bedeutet "Zugänglichkeit" der Member der abgeleiteten Klasse? Mir scheint, dass ich eine grundlegende