Heim >Backend-Entwicklung >C#.Net-Tutorial >Zusammenfassung der wichtigsten Punkte der C++-Überprüfung Nr. 8 – Vererbung 1

Zusammenfassung der wichtigsten Punkte der C++-Überprüfung Nr. 8 – Vererbung 1

黄舟
黄舟Original
2017-01-16 11:40:191128Durchsuche

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 (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn