Kursinhalt
C++ OOP
C++ OOP
Zugriffsmodifikatoren in der Vererbung
Zugriffsmodifikatoren in der Vererbung sind entscheidend in der objektorientierten Programmierung mit C++. Sie bestimmen, wie Mitglieder (Attribute und Methoden) einer Basisklasse von einer abgeleiteten Klasse aus zugänglich sind. Das Verständnis dieser Modifikatoren ist wesentlich für ein effektives Klassendesign und für die Aufrechterhaltung der Kapselung und Integrität der Daten.
Zugriffstypen der Vererbung
Eine Klasse kann von einer anderen Klasse abgeleitet werden. Die abgeleitete Klasse erbt Mitglieder von der Basisklasse, aber die Zugänglichkeit dieser geerbten Mitglieder hängt sowohl vom in der Basisklasse verwendeten Zugriffsmodifikator als auch vom Vererbungstyp ab.
Basisklasse public | Basisklasse protected | Basisklasse private | |
---|---|---|---|
public Vererbung | |||
protected Vererbung | |||
private Vererbung |
public
protected
private
class Derived : public Base { // publicMember is public // protectedMember is protected // privateMember is not accessible };
Zugriffskontrolle und Vererbung Fazit
In der objektorientierten Vererbung sind private Mitglieder der Basisklasse für abgeleitete Klassen unzugänglich, um sie vor Änderungen oder Abrufen zu schützen, und geschützte Mitglieder können nur innerhalb der Unterklasse zugegriffen werden, während öffentliche Mitglieder extern zugänglich sind. Sie können damit experimentieren, indem Sie den untenstehenden Code-Schnipsel verwenden.
main
class Base { public: int publicAttribute; protected: int protectedAttribute; private: int privateAttribute; }; class PublicDerived : public Base {}; class ProtectedDerived : protected Base {}; class PrivateDerived : private Base {}; int main() { PublicDerived obj1; ProtectedDerived obj2; PrivateDerived obj3; }
Denken Sie daran
Geschützte Mitglieder, die innerhalb abgeleiteter und nachfolgend abgeleiteter Klassen zugänglich sind, dienen als Brücke zwischen privaten und öffentlichen Elementen.
Konstruktoren und Destruktoren werden automatisch für abgeleitete Klassen Objekte aufgerufen, um eine ordnungsgemäße Ressourceninitialisierung und -bereinigung sicherzustellen. Um auf diese Basisklassenelemente direkt zuzugreifen, müssen Konstruktoren und Destruktoren öffentlich deklariert werden.
Danke für Ihr Feedback!