1 Verschiedene Vererbungsmethoden ändern die Zugriffsattribute geerbter Mitglieder.
Öffentlich geänderte Mitgliedsvariablen und -methoden können sowohl innerhalb als auch außerhalb der Klasse verwendet werden.
Geschützte Mitgliedsvariablen und -methoden werden innerhalb der Klasse und in geerbten Unterklassen verwendet und können nicht außerhalb der Klasse verwendet werden. (Zur Verwendung in der Familie, um Vererbung zu erhalten!)
Private geänderte Mitgliedsvariablen und -methoden können nur innerhalb der Klasse verwendet werden, nicht außerhalb der Klasse
1) In C++ Die Vererbung Die Methode wirkt sich auf die externen Zugriffsattribute der Unterklasse aus
öffentliche Vererbung: Die Mitglieder der übergeordneten Klasse behalten die ursprüngliche Zugriffsebene in der Unterklasse bei
private Vererbung: Die Mitglieder der übergeordneten Klasse werden private Mitglieder
Geschützte Vererbung: Öffentliche Mitglieder in der übergeordneten Klasse werden geschützt
Geschützte Mitglieder in der übergeordneten Klasse bleiben weiterhin geschützt
Private Mitglieder in der übergeordneten Klasse bleiben weiterhin privat
2) Private Mitglieder existieren weiterhin in Unterklassen, sind aber nicht zugänglich. Unabhängig davon, wie Sie eine Basisklasse erben, kann eine abgeleitete Klasse die privaten Mitglieder der Basisklasse nicht direkt verwenden.
3) Attributtabelle für den externen Zugriff der Unterklasse in C++
Zugriffsebene für übergeordnete Klassenmitglieder
Vererbungsmethode
public(继承方式) proteced(继承方式) private(继承方式) public public proteced private proteced proteced proteced private private private private Private
Drei-Look-Prinzip:
Die Vererbungsmethode in C++ (öffentlich, privat, geschützt) wirkt sich auf die externen Zugriffsattribute von Unterklassen aus
Beurteilen Sie einen bestimmten Satz, Ob darauf zugegriffen werden kann
1) Sehen Sie sich die aufrufende Anweisung an. Dieser Satz wird innerhalb und außerhalb der Unterklasse geschrieben
2) Sehen Sie sich an, wie die Unterklasse von der übergeordneten Klasse erbt (öffentlich, privat). , protected)
3) Sehen Sie sich die Zugriffsebenen (öffentlich, privat, geschützt) in der übergeordneten Klasse an
Grundsätze der Zugriffsebeneneinstellung für abgeleitete Klassenmitglieder
Denken: Wie kann man öffentlich, geschützt und privat richtig verwenden, um Zugriffsebenen für Mitglieder zu deklarieren?
1. Mitglieder, auf die die Außenwelt zugreifen muss, werden direkt auf öffentlich gesetzt
2. Mitglieder, auf die nur in der aktuellen Klasse zugegriffen werden kann, werden auf privat gesetzt
3. Auf sie kann nur in der aktuellen Klasse zugegriffen werden. Mitglieder, auf die in Klassen und Unterklassen zugegriffen wird, sind auf geschützt gesetzt, und die Zugriffsrechte geschützter Mitglieder liegen zwischen öffentlich und privat.
2 Typkompatibilitätsprinzip
Die Typkompatibilitätsregel bedeutet, dass überall dort, wo ein Basisklassenobjekt erforderlich ist, stattdessen ein Objekt einer öffentlichen abgeleiteten Klasse verwendet werden kann. Durch öffentliche Vererbung erhält die abgeleitete Klasse alle Mitglieder der Basisklasse mit Ausnahme des Konstruktors und Destruktors. Auf diese Weise verfügt die öffentliche abgeleitete Klasse tatsächlich über alle Funktionen der Basisklasse. Alle Probleme, die die Basisklasse lösen kann, können von der öffentlichen abgeleiteten Klasse gelöst werden. Die in den Typkompatibilitätsregeln genannten Ersetzungen umfassen die folgenden Situationen:
Ein Unterklassenobjekt kann als übergeordnetes Klassenobjekt verwendet werden
Ein Unterklassenobjekt kann direkt einem übergeordneten Klassenobjekt zugewiesen werden
Unterklassenobjekte können übergeordnete Klassenobjekte direkt initialisieren
Zeiger der übergeordneten Klasse können direkt auf Unterklassenobjekte verweisen
Verweise auf übergeordnete Klassen können direkt auf Unterklassenobjekte verweisen
Danach Ersetzung, Ableitung Klassenobjekte können als Objekte der Basisklasse verwendet werden, es können jedoch nur von der Basisklasse geerbte Mitglieder verwendet werden.
Typkompatibilitätsregeln sind eine der wichtigen Grundlagen des Polymorphismus.
Bedeutung der ersten Ebene:
1-1 Basisklassenzeiger (Referenz) zeigt auf das Unterklassenobjekt
Parent *p = Null; p = &c1; p->printp(); 1-2 指针做函数参数 howToPrint(&p1); howToprint(&c1); 1-3引用做函数参数 howToprint2(p1); howToprint2(c1);
Bedeutung der zweiten Ebene
Sie können übergeordnete Klassenobjekte Unterklassenobjekte initialisieren lassen
Parent p3 = c1;
Objektmodell in drei Vererbungen
Frage: Wie initialisiere ich übergeordnete Klassenmitglieder? Welche Beziehung besteht zwischen den Konstruktoren der übergeordneten Klasse und der untergeordneten Klasse?
Beim Erstellen des untergeordneten Klassenobjekts müssen Sie den Konstruktor der übergeordneten Klasse aufrufen, um seine geerbten Mitglieder zu initialisieren.
In der Analyse von das Unterklassenobjekt Beim Erstellen müssen Sie den Destruktor der übergeordneten Klasse aufrufen, um seine geerbten Mitglieder zu bereinigen
Das Konstruktions- und Destruktoraufrufprinzip bei der Vererbung (von oben nach unten während der Initialisierung, zuerst Papa hat wieder einen Sohn)
1. Wenn das Unterklassenobjekt erstellt wird, wird zuerst der Konstruktor der übergeordneten Klasse aufgerufen
2 Nachdem die Ausführung des übergeordneten Klassenkonstruktors abgeschlossen ist, wird der Konstruktor der Unterklasse wird ausgeführt
3 Wenn der Konstruktor der übergeordneten Klasse Parameter hat, muss der Aufruf in der Initialisierungsliste der Unterklasse angezeigt werden
4 Der Destruktor ist dem Konstruktor entgegengesetzt
Das Obige ist die achte Zusammenfassung der C++-Überprüfungspunkte – Vererbung eins. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com)!