Rufen Sie die Basisklassenfunktion in C ++ auf

Rufen Sie die Basisklassenfunktion in C ++ auf
Es gibt ein Konzept der Vererbung in vielen Programmiersprachen wie C++. Es bietet Ihnen die Möglichkeit, die Kinderklassen in Ihrem Programm zu verwenden, die aus ihren jeweiligen Basisklassen abgeleitet werden. Eine untergeordnete Klasse kann auf die Datenmitglieder ihrer spezifischen Basisklasse zugreifen, ich.e., Variablen und Methoden. Innerhalb dieses Leitfaden++. Beginnen wir also mit dem Start der Terminalkonsole der Ubuntu 20.04 Linux -Betriebssystem mit dem Tiefpunkt „Strg+Alt+T“ auf seinem Desktop „Strg+Alt+T“. Schauen wir uns einige der einfachen Beispiele an, um jetzt eine Basismethode in C ++ aufzurufen.

Beispiel 01:

Das erste Beispiel begann mit der Erzeugung einer C ++ - neuen Datei, mit der ein Code erstellt wird. Die sehr bekannte "Touch" -Bemerkung wird hier verwendet, um die „Basis“ zu erstellen.CC ”-Datei. Diese Datei muss in einem Editor geöffnet werden, der bereits in Ubuntu 20 integriert ist.04 System, ich.e., Vim, Nano oder Texteditor. Wir haben den Redakteur „Nano“ ausgewählt, um ihn zu öffnen.

Der Code wurde aus der Aufnahme einiger benötigter Header -Dateien von C ++ wie "iOstream" und "Bits/STDC" gestartet++.H". Die Datei wird im leeren Gnu Nano -Herausgeber des Ubuntu 20 geöffnet.04 System. Die C ++ - Sprache verwendet den "STD" -Namenspace, um "Cout" und "CIN" -Anklauseln zum Anzeigen und Erhalten einer Eingabe zu verwenden. Wir haben eine neue Klasse „A“ mit einer öffentlichen Methode Show () begonnen (). Diese Funktion enthält eine einzelne Cout -Anweisung, um anzuzeigen, dass es sich um eine übergeordnete Klassenfunktion handelt, die derzeit ausgeführt wird. Nach dieser Klasse haben wir eine neue Klasse "B" aus der Klasse "A" erstellt, "B" geerbt. Dies bedeutet, dass Klasse B eine untergeordnete Klasse von Klasse A ist und ihre Eigenschaften erben kann. Die Klasse „B“ enthält auch eine öffentliche Funktion mit dem Namen "Display ()" ". Diese Funktion verwendet hier eine einzige "Cout" -Anweisung, um anzuzeigen, dass diese Funktion in der untergeordneten Klasse dieses Programms ausgeführt wurde. Jetzt wurde die Kinderklasse hier beendet. Wir haben die main () -Methode hier gestartet, um die Klassen auszuführen.

Jetzt werden wir versuchen, die Funktion "Show" der Elternklasse A zu nennen, ohne ihr Objekt zu erstellen. Wir werden das Objekt der Kinderklasse B für diesen Zweck verwenden. In der Funktion main () haben wir also ein Objekt „OBJ“ ​​der untergeordneten Klasse B mit dem „Punkt“ zwischen dem Klassennamen und dem Objektnamen erstellt. Dieses Objekt "OBJ" wurde hier mit dem "Punkt" -Schild verwendet, um die Funktion "show ()" der übergeordneten Klasse als "A" aufzurufen. Wir verwenden dieses Objekt nicht, um die Funktion einer Kinderklasse B aufzurufen. Wenn die Klasse B der untergeordneten Klasse B eine Konstruktorfunktion enthält, wird diese Konstruktorfunktion gleich nach dem Erstellen eines Objekts ausgeführt. Dies ist das Konzept der Vererbung unter Verwendung eines Objekts der untergeordneten Klasse, um die Funktion der jeweiligen übergeordneten Klasse aufzurufen. So machen wir es. Lassen Sie uns den Code mit Strg+S und Strg+X -Verknüpfungen nacheinander speichern und beenden.

Nach dem Speichern des Codes sind wir wieder in der Terminalschale. Vor der Ausführung muss der Code mit einem C ++ - Compiler auf der Shell kompiliert werden. Ubuntu 20.04 kommt mit einem "G ++" -Kompiler, der mit dem "APT" -Paket installiert werden kann. Wir haben also diesen "G ++" -Kompiler verwendet, um die neu gemachte Datei zu kompilieren, und sie dann mit einem "ausgeführt" ausgeführt "./A.OUT ”Ubuntu 20.04 Anweisung. Im Gegenzug wurde die übergeordnete Klassenfunktion „show ()“ ausgeführt, und wir haben die Anzeigenachricht erhalten.

Beispiel 02:

Unser erstes Beispiel war es, eine Funktion von einer Basisklasse von einem eindeutigen Namen insgesamt aufzurufen, der den Code enthält. Aber was werden Sie tun, wenn sowohl über Eltern- als auch Kinderklassen die gleiche Namensfunktion mit denselben Parametern und Rückgabetypen enthalten? Schauen wir uns diese Methode an, um eine Basisklassenfunktion aufzurufen. Nach den Header -Dateien und dem Namespace haben wir zwei Klassen deklariert, A und B. A ist die übergeordnete Klasse von B, und die Klasse B leitet die Eigenschaften der übergeordneten Klasse A ab. Beide Klassen A und B enthalten eine Funktion „gleich ()“ mit demselben Namen und derselben Implementierung separat. Die Implementierung beider Funktionen enthält die Cout -Anweisung.

Wir haben den Funktionsaufruf für die übergeordnete Klasse A „Same ()“ innerhalb der untergeordneten Klasse B mit dem Zeichen „::“ in der letzten Zeile verwendet. Dies soll die Unannehmlichkeiten vermeiden, die verursacht werden könnten, wenn ein Objekt die gleiche Namensfunktion aufruft. In der Main () -Funktion haben wir also ein Objekt "B" der Kinderklasse "B" erstellt, die "B" sind. Dieses Objekt "B" wird verwendet, um die Funktion "gleich" der Kinderklasse B zu nennen. Wenn ein Benutzer versucht, die gleichnamige Funktion der übergeordneten Klasse mit demselben Objekt aufzurufen, wird eine Ausnahme ausgelöst. Aufgrund der Verwendung des Funktionsaufrufs von „A :: Same“ in der Funktion Child Class wird die Ausnahme vermieden und kein neues Objekt erstellt. Speichern Sie Ihren Code und beenden Sie den Editor.

Die Zusammenstellung und das Ausführen von aktualisierten Code führen uns zur folgenden Ausgabe. Sie sehen.

Beispiel 03:

Sehen wir uns eine andere Methode an, um die Funktion des Basisaufrufs in C aufzurufen++. Wir haben also den gleichen Code aktualisiert. Die Header -Dateien, der Namespace-, Eltern- und Kinderklassen sind unverändert, ich.e., Nicht aktualisiert. Das einzige Update wurde in der Methode „main ()“ dieses Codes durchgeführt. Wir haben zwei Objekte, B1 und B2, der Kinderklasse „B“ erstellt,. Das Objekt B1 nennt die Funktion "show ()" der Kinderklasse direkt. Während das Objekt B2 die übergeordnete Klasse show () -Funktion mit dem Zeichen „::“ zwischen seinem Klassennamen und dem Funktionsnamen aufruft. Lassen Sie uns diesen Code einfach ausführen, nachdem Sie ihn gespeichert haben.

Das Ergebnis dieser Codeausführung hat erfolgreich funktioniert, und wir können sehen, dass die Basisklassenfunktion auch mit dem Objekt „B2“ unter Verwendung des Objekts für untergeordnete Klassen aufgerufen wird.

Beispiel 04:

Das letzte Beispiel unterscheidet sich ganz von allen oben genannten Beispielen. Der Gesamtcode bleibt unverändert, während die Funktion main () wenig aktualisiert wurde. Wir haben ein Objekt „B“ der Kinderklasse B erstellt. Dieses Objekt "B" nennt die Unterrichtsfunktion "gleich". Dann erstellte ein Zeiger "P" der Basisklasse "A" -Typ, der auf das Objekt "B" der Kinderklasse B zeigt. Dieser Zeiger wird dann verwendet, um die gleiche () Funktion der Basisklasse A aufzurufen. Lassen Sie uns diesen Code ausführen und die Ergebnisse sehen.

Nachdem wir diesen aktualisierten Zeigercode ausgeführt haben, haben wir festgestellt, dass die Basisklassenfunktion nach der Ausführung der untergeordneten Klassenmethode mit dem Zeiger ausgeführt wurde. So machen wir es.

Abschluss:

Dieser Artikel ist ein Super -Bonus für Benutzer, die nach Erbschaftskonzepten suchen. Es demonstrierte eine Aufruf -Basisklassenfunktion mit dem Objekt unter childes Klassen oder übergeordnete Klassenobjekte. Auf der anderen Seite haben wir auch das Konzept der Zeiger verwendet, um die Basisklassenfunktion aus der Hauptfunktion eines Programms zu bezeichnen.