C ++ - Funktion überschreiben

C ++ - Funktion überschreiben
In diesem Artikel werden wir die Funktion in der C ++ - Programmiersprache überschreiben. C ++ unterstützt den Laufzeitpolymorphismus. In der Funktionsüberschreitung definiert die untergeordnete Klasse die Funktion, die bereits in ihrer übergeordneten Klasse definiert ist. Der Programmierer kann abgeleitete klassenspezifische Funktionen bereitstellen (obwohl er in der Basisklasse definiert ist). Jetzt werden wir einige Beispiele sehen und das übergeordnete Konzept der Funktion in C verstehen++.

Beispiel 1

Ich habe zwei Klassen im folgenden Beispielcode definiert - eine Basisklasse und eine abgeleitete Klasse. Die Basisklasse hat eine Mitgliedsfunktion, ich.e., disp (). Die "abgeleitete Klasse" wird aus der "Base_class" geerbt.Die Funktion "disp ()" ist in "Base_Class" vorhanden und dann in der Klasse "abgeleitet" neu definiert.”

In der main () -Funktion, ein Objekt von abgeleitet_class, ich.e., "D" wird erstellt. Dann nennen wir die Funktion von Disp () auf dem abgeleiteten Klassenobjekt, sodass die Funktion in der abgeleiteten Klasse aufgerufen wird. Die Basisklassenversion wird hier ignoriert. Sie können unter der Ausgabe als - „disp () in der abgeleiteten Klasse sehen.”

#enthalten
Verwenden von Namespace STD;
// Basisklasse
Klasse Base_class

öffentlich:
Hohlraum disp ()

Cout << "disp() function in base class." << endl;

;
//abgeleitete Klasse
Klasse abgeleitet_class: public base_class

öffentlich:
Hohlraum disp ()

Cout << "disp() function in derived class" << endl;

;
int main ()

Abgeleitet_class d;
D.disp (); // disp () Funktion über abgeleitete Klassenobjekte
Rückkehr 0;

Beispiel-2

In diesem Beispiel werden wir sehen, wie man die Basisklassenversion der Funktion absichtlich über das abgeleitete Klassenobjekt aufruft. In der Definition der abgeleiteten Klassenfunktion verwenden wir den Operator des Bereichsauflösungsoperators [::], um die Basisklassenversion der Funktion aufzurufen.

#enthalten
Verwenden von Namespace STD;
Klasse Base_class

öffentlich:
Hohlraum disp ()

Cout << "disp() function in base class." << endl;

;
Klasse abgeleitet_class: public base_class

öffentlich:
Hohlraum disp ()

Base_Class :: Disp (); // Rufen Sie die Basisklassenversion von Disp () an

;
int main ()

Abgeleitet_class d;
D.disp ();
Rückkehr 0;

Beispiel-3

Dies ist ein weiteres Beispiel für die Überschreibung von Funktionen. In diesem Beispiel haben wir eine Elternklasse erstellt - Tier- und zwei abgeleitete Klassen - Ente und Hund. Die Basisklasse, ich.e., Die Tierklasse hat einen Mitgliederfunktions -Sound ().

In der abgeleiteten Klasse/Kinderklasse, ich.e., Hund, wir haben die gleiche Funktion neu definiert, ich.e., Sound (), um seine Basisklassendefinition zu überschreiben. Ebenso in der anderen abgeleiteten Klasse, ich.e., Ente, wir haben die gleiche Funktion neu definiert, ich.e., Klang().

In der Main () -Funktion haben wir das "Hund" -Djekt von "Hund" und "Duck" von "Duck" erstellt.”Also, wenn wir jetzt die Sound () -Funktion für Hund und Ente nennen, wird die abgeleitete Klassenversion der Sound () -Funktion aufgerufen. Sie können die Ausgabe des Programms wie unten gezeigt sehen. Mit Hilfe der Übergabe der Funktion können wir also die abgeleitete klassenspezifische Funktion aufrufen.

#enthalten
Verwenden von Namespace STD;
Klassentier

öffentlich:
void Sound ()

Cout << "Animal sound!" << endl;

;
// Abgeleitete Klasse - Hundetokument
Klassenhund: öffentliches Tier

öffentlich:
void Sound ()

Cout << "Dog sound - bark." << endl;

;
// Abgeleitete Klasse - Entenklasse
Klasse Duck: öffentliches Tier

öffentlich:
void Sound ()

Cout << "Duck sound - quack." << endl;

;
int main ()

Hund Hund;
Ente Ente;
Hund.Klang(); // Sound () des Hundes
Ente.Klang(); // Sound () der Ente
Rückkehr 0;

Abschluss

In diesem Artikel habe ich die Funktion erklärt, die in C überschritten wird++. Die C ++ - Sprache unterstützt den Laufzeitpolymorphismus. Funktionsübergeordnetes hilft dabei, den Laufzeitpolymorphismus in C zu erreichen++. Dieser Artikel untersuchte das Konzept der Funktionsüberschreitung und wie man die Laufzeitpolymorphismus unter Verwendung von Funktionsüberschreitungen erreicht.