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

Jan 16, 2017 am 11:40 AM

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
Nach dem Login kopieren

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);
Nach dem Login kopieren

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)!


Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist die Rolle von CHAR in C -Saiten? Was ist die Rolle von CHAR in C -Saiten? Apr 03, 2025 pm 03:15 PM

In C wird der Zeichenentyp in Saiten verwendet: 1. Speichern Sie ein einzelnes Zeichen; 2. Verwenden Sie ein Array, um eine Zeichenfolge darzustellen und mit einem Null -Terminator zu enden. 3. Durch eine Saitenbetriebsfunktion arbeiten; 4. Lesen oder geben Sie eine Zeichenfolge von der Tastatur aus.

Warum tritt bei der Installation einer Erweiterung mit PECL in einer Docker -Umgebung ein Fehler auf? Wie löst ich es? Warum tritt bei der Installation einer Erweiterung mit PECL in einer Docker -Umgebung ein Fehler auf? Wie löst ich es? Apr 01, 2025 pm 03:06 PM

Ursachen und Lösungen für Fehler Bei der Verwendung von PECL zur Installation von Erweiterungen in der Docker -Umgebung, wenn die Docker -Umgebung verwendet wird, begegnen wir häufig auf einige Kopfschmerzen ...

Berechnung des C-Subscript 3-Index 5 C-Subscript 3-Index 5-Algorithmus-Tutorial Berechnung des C-Subscript 3-Index 5 C-Subscript 3-Index 5-Algorithmus-Tutorial Apr 03, 2025 pm 10:33 PM

Die Berechnung von C35 ist im Wesentlichen kombinatorische Mathematik, die die Anzahl der aus 3 von 5 Elementen ausgewählten Kombinationen darstellt. Die Berechnungsformel lautet C53 = 5! / (3! * 2!), Was direkt durch Schleifen berechnet werden kann, um die Effizienz zu verbessern und Überlauf zu vermeiden. Darüber hinaus ist das Verständnis der Art von Kombinationen und Beherrschen effizienter Berechnungsmethoden von entscheidender Bedeutung, um viele Probleme in den Bereichen Wahrscheinlichkeitsstatistik, Kryptographie, Algorithmus -Design usw. zu lösen.

Vier Möglichkeiten zur Implementierung von Multithreading in C -Sprache Vier Möglichkeiten zur Implementierung von Multithreading in C -Sprache Apr 03, 2025 pm 03:00 PM

Multithreading in der Sprache kann die Programmeffizienz erheblich verbessern. Es gibt vier Hauptmethoden, um Multithreading in C -Sprache zu implementieren: Erstellen Sie unabhängige Prozesse: Erstellen Sie mehrere unabhängig laufende Prozesse. Jeder Prozess hat seinen eigenen Speicherplatz. Pseudo-MultitHhreading: Erstellen Sie mehrere Ausführungsströme in einem Prozess, der denselben Speicherplatz freigibt und abwechselnd ausführt. Multi-Thread-Bibliothek: Verwenden Sie Multi-Thread-Bibliotheken wie PThreads, um Threads zu erstellen und zu verwalten, wodurch reichhaltige Funktionen der Thread-Betriebsfunktionen bereitgestellt werden. Coroutine: Eine leichte Multi-Thread-Implementierung, die Aufgaben in kleine Unteraufgaben unterteilt und sie wiederum ausführt.

Erklären Sie den Unterschied zwischen Selbst ::, Parent :: und static :: in Php OOP. Erklären Sie den Unterschied zwischen Selbst ::, Parent :: und static :: in Php OOP. Apr 09, 2025 am 12:04 AM

In Phpoop bezieht sich Self :: auf die aktuelle Klasse, Eltern :: Bezieht sich auf die Elternklasse, static :: wird für die späte statische Bindung verwendet. 1.self :: wird für statische Methoden und konstante Aufrufe verwendet, unterstützt jedoch keine späte statische Bindung. 2.PARENT :: wird für Unterklassen verwendet, um übergeordnete Klassenmethoden aufzurufen, und auf private Methoden können nicht zugegriffen werden. 3.Static :: unterstützt die verspätete statische Bindung, geeignet für Vererbung und Polymorphismus, kann jedoch die Lesbarkeit des Codes beeinflussen.

Unterschiedliche Funktionsnutzungsabstand Funktion C -Verwendung Tutorial Unterschiedliche Funktionsnutzungsabstand Funktion C -Verwendung Tutorial Apr 03, 2025 pm 10:27 PM

STD :: Einzigartige Entfernung benachbarte doppelte Elemente im Container und bewegt sie bis zum Ende, wodurch ein Iterator auf das erste doppelte Element zeigt. STD :: Distanz berechnet den Abstand zwischen zwei Iteratoren, dh die Anzahl der Elemente, auf die sie hinweisen. Diese beiden Funktionen sind nützlich, um den Code zu optimieren und die Effizienz zu verbessern, aber es gibt auch einige Fallstricke, auf die geachtet werden muss, wie z. STD :: Distanz ist im Umgang mit nicht randomischen Zugriffs-Iteratoren weniger effizient. Indem Sie diese Funktionen und Best Practices beherrschen, können Sie die Leistung dieser beiden Funktionen voll ausnutzen.

Wie kann ich die Schlangennomenklatur in der C -Sprache anwenden? Wie kann ich die Schlangennomenklatur in der C -Sprache anwenden? Apr 03, 2025 pm 01:03 PM

In der C -Sprache ist die Snake -Nomenklatur eine Konvention zum Codierungsstil, bei der Unterstriche zum Verbinden mehrerer Wörter mit Variablennamen oder Funktionsnamen angeschlossen werden, um die Lesbarkeit zu verbessern. Obwohl es die Zusammenstellung und den Betrieb nicht beeinträchtigen wird, müssen langwierige Benennung, IDE -Unterstützung und historisches Gepäck berücksichtigt werden.

Verwendung von Veröffentlichungen in C. Verwendung von Veröffentlichungen in C. Apr 04, 2025 am 07:54 AM

Die Funktion Release_Semaphor in C wird verwendet, um das erhaltene Semaphor zu freigeben, damit andere Threads oder Prozesse auf gemeinsame Ressourcen zugreifen können. Es erhöht die Semaphorzahl um 1 und ermöglicht es dem Blockierfaden, die Ausführung fortzusetzen.

See all articles