Reine virtuelle Funktion in C ++

Reine virtuelle Funktion in C ++
Eine reine virtuelle Funktion in der C ++ - Programmiersprache ist ein weithin bekanntes Konzept in der C ++ - Vererbung. Diese virtuelle Funktion kann in der abstrakten Klasse verwendet werden. Es kann nur in der abstrakten Klasse angegeben werden und kann nicht definiert werden. Der Deklarationswert für die reine virtuelle Funktion beträgt 0. Daher wird dieser Artikel implementiert, um festzustellen, wie die reine virtuelle Funktion in der Basisklasse angegeben und in der abgeleiteten Klasse definiert werden kann.

Hinweis: Das in diesem Tutorial verwendete Betriebssystem ist Ubuntu 20.04. Sie können andere Linux -Distributionen oder Windows -Systeme verwenden. Der G ++ - Compiler wurde zur Implementierung von Beispielen verwendet.

Beispiel 01

Wir beginnen mit einem einfachen Beispiel, um die Gesamtarbeit und Struktur einer reinen virtuellen Funktion in der c ++ - Abstract -Klasse zu veranschaulichen. Sie müssen wissen, dass eine abstrakte Klasse kein Objekt besetzt, ich.e., nicht instanziiert. Wir können jedoch Zeiger oder Verweise verwenden, um auf diese Klasse und ihre Funktionen zuzugreifen. Erstellen Sie also eine neue C ++ - Datei mit Hilfe des “berührenFragen Sie und öffnen Sie es mit einem Redakteur, wie zum Beispiel Nano Editor.

$ Touch Pure.CC
$ nano rein.CC

Jeder C ++-Code startet mit dem darin enthaltenen Stream-Stream-Stream-Header. Der Namespace -Standard muss danach deklariert werden. Eine abstrakte Klasse wurde mit dem Namen "Parent" initialisiert. Es enthält eine einzelne reine virtuelle Funktionserklärung namens “zeigen()”. Diese reine Funktion wurde mit 0 initialisiert. Die abgeleitete Klasse namens “Kind”Wurde initialisiert. Diese untergeordnete Klasse hat auf die übergeordnete Klasse zugegriffen und gleichzeitig als Schnittstelle verwendet. Die untergeordnete Klasse enthält die Definition einer Show () -Methode. Die Methode show () hat einen Text mit dem "angezeigt" angezeigtCout”Klausel. Hier kommt die Main () -Methode. Alle Arbeiten sollten von hier aus beginnen:

Zu Beginn einer Main () -Methode des übergeordneten Klassenzeigers “*P" wurde erschaffen. Da die übergeordnete Klasse abstrakt ist, können wir ihr Objekt nicht erstellen. Die Kinderklasse wurde mit dem Objekt initiiert “C”. Der Zeiger "*P"Der übergeordneten Klasse hat auf die Adresse des Kindesklassenobjekts zugegriffen"C”. Dann der Zeiger “*PRuft die reine virtuelle Funktion auf “zeigen()”Durch eine Referenz. Kompilieren Sie ihn mit dem G ++ - Compiler -Paket, nachdem Sie den c ++ reinen virtuellen Code gespeichert haben. Bisher wurden keine Fehler gefunden. Nach dem Ausführen der Datei haben wir die folgende Ausgabe:

$ g ++ rein.CC
$ ./A.aus

Das Ergebnis dieser Abbildung kann im oben angehängten Bild analysiert werden.

Beispiel 02

Schauen wir uns ein weiteres Beispiel für die Verwendung einer reinen virtuellen Funktion in C an++. Wir werden einige mathematische Berechnungen in der reinen virtuellen Methode durchführen. Beginnen Sie also mit der gleichen Datei und ändern Sie sie ein wenig. Fügen Sie das Header-Paket des Eingabe-Output-Streams hinzu und verwenden Sie den Standard-Namespace auch im Code. Wir haben eine abstrakte Klasse namens deklariert “ErgebnisNach dem Namespace. Diese Klasse enthält eine geschützte Ganzzahl -Typ -Variable mit dem Namen “Punktzahl”Wird verwendet, um Markierungen vom Benutzer zu erhalten.

Eine einfache öffentliche Methode wurde in der abstrakten Klasse mit dem Namen “definiert“getCore ()”. Der "CoutKlausel in dieser Methode erfordert, dass der Benutzer eine Punktzahl eingeben muss. Die Funktionen würden die Markierungen vom Benutzer als Eingabe über die “erhaltenCIN”Klausel. Dann die reine virtuelle Funktion “Prozentsatz()Wird hier zu 0 deklariert. Die abgeleitete Klasse “Status”Wird definiert, um den Prozentsatz des Schülers durch den Zugriff auf die übergeordnete Klasse als Schnittstelle zu erhalten. Die untergeordnete Klasse „Status“ enthält die Definition einer reinen virtuellen Methode “Prozentsatz()" drin:

Der Prozentsatz der reinen virtuellen Funktion () berechnet den Prozentsatz der Studentenspuren. Dieser Prozentsatz wird mit Hilfe einer prozentualen Formel mit den Noten eines Schülers gefunden. Die Markierungen wurden durch die Variable erhalten “PunktzahlMit dem Benutzer eingegeben werden Markierungen. Die Funktion main () enthält die Erstellung von Objekten der Kinderklasse. Dieses Objekt wird verwendet, um die methode getCore () aufzurufen, um Markierungen vom Benutzer zu erwerben. Das gleiche Objekt wird verwendet, um die Funktion prozentual () aufzurufen, um den Prozentsatz der vom Benutzer eingegebenen Markierungen zu berechnen.

Speichern wir zuerst den Code und beenden Sie die Datei mithilfe von "Strg+s" Und "Strg+s", bzw.

Nachdem Sie zum Terminal zurückgekehrt sind, kompilieren Sie den Code zuerst mit dem G ++ - Compiler -Paket. Führen Sie danach die Datei mit der "aus" ausA.aus" Anfrage. Es wird Sie auffordern, Ihre Marken einzugeben. Wir haben bei jeder Ausführung drei verschiedene Markierungen hinzugefügt und jedes Mal drei verschiedene Prozentsätze erhalten.

$ g ++ rein.CC
$ ./A.aus

Das Ergebnis dieser Abbildung kann im oben angehängten Bild analysiert werden.

Abschluss

Schließlich haben wir die Beispiele für die Verwendung einer reinen virtuellen Funktion in der c ++ - abstrakten Klasse verwendet. Wir haben abstrakte und abgeleitete Klassen verwendet, um das Konzept der reinen virtuellen Funktion zu veranschaulichen. Basierend auf den bereitgestellten Informationen glauben wir, dass Sie von nun an leicht an reinen virtuellen Funktionen arbeiten werden. Vielen Dank für das Lesen dieses Artikels und bitte schauen Sie sich die anderen von LinuxHint bereitgestellten Artikel an.com.