


Zusammenfassung der wichtigsten Punkte der C++-Überprüfung Nr. 8 – Vererbung 1
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)!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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.

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 ...

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.

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.

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.

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.

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.

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.
