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