Funktionsüberschreibung in C++ erklärt

Veröffentlicht: 2022-11-09

Inhaltsverzeichnis

Was ist eine Funktion?

Eine Funktion ist ein Stück, das zu einem Code gehört, um eine festgelegte Aufgabe in einem Programm auszuführen. Es ist wichtig, Kenntnisse aus erster Hand über Vererbung zu haben, um zu lernen, dass die Funktion zum Überschreiben der Vererbungsimplementierung ein Mandat für diese Funktion ist. Eine C++-Funktion ist eine Sammlung von Anweisungen, die zur Ausführung einer Aufgabe zusammengefasst sind. Alle Programme haben eine main()-Funktion, und bestimmte Programme haben zusätzliche Funktionen. Die Funktionsdeklaration sendet den Funktionsnamen, den Rückgabetyp und die Parameter an den Compiler, um den Funktionsrumpf durch die Funktionsdefinition zu bestimmen. Eine Funktion kann eine Prozedur, eine Methode oder eine Subroutine sein, und alle C++-Funktionen bestehen aus einem Header und einem Body.

Syntax einer C++-Funktion:-

Rückgabetyp Funktionsname (Parameterliste) {

Funktionskörper

}

Komponenten :-

  • Rückgabetyp – Dies bezeichnet den Rückgabewerttyp der Funktion.
  • Funktionsname – Dies stellt den Namen der Funktion dar, der die Funktionssignatur und die Parameterliste bildet.
  • Parameter – Dies ist ein Platzhalter für den Wert, den die Funktion zurückgibt. Wenn eine Funktion aufgerufen wird, wird der an den Parameter übergebene Wert als tatsächlicher Parameter bezeichnet.
  • Funktionskörper – Der Funktionskörper umfasst die Liste von Anweisungen, die die Aufgabe der Funktion definieren.

So rufen Sie eine Funktion auf

Eine Funktion muss vor der Verwendung aufgerufen oder aufgerufen werden, wonach ihr die Steuerung zur Durchführung der erforderlichen Aufgabe übertragen wird. Danach gibt die return-Anweisung die Kontrolle an das Hauptprogramm zurück. Die Parameter und der Funktionsname müssen übergeben werden, um eine Funktion aufzurufen. Argumente können beim Aufrufen einer Funktion auf mehrere Arten übergeben werden. Die Anruftypen sind wie folgt:-

  • Anruf nach Wert
  • Aufruf per Referenz
  • Aufruf per Pointer

Lernen Sie Softwareentwicklungskurse online von den besten Universitäten der Welt. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Funktionsüberschreibung in C++

Der C++ Override ist eine Idee, über die eine gleichnamige Funktion definiert wird. Die Basisklassenfunktion beim Überschreiben wird innerhalb der abgeleiteten Klasse neu definiert, die die Basisklassenfunktion überschreibt. Die Implementierung des Laufzeitpolymorphismus kann auch als Funktionsüberschreibung definiert werden. Hier übersteuert die Laufzeit des Programms die Funktion.

Das Überschreiben von Funktionen ermöglicht es Programmierern, eine Funktion in der untergeordneten Klasse zu verwenden, die in ihrer übergeordneten Klasse gefunden wird. Als Ergebnis erbt die untergeordnete Klasse jedes Datenelement und die Elementfunktionen, die in der übergeordneten Klasse gefunden werden. Um die Funktionalität einer untergeordneten Klasse zu überschreiben, müssen Sie das Überschreiben von Funktionen implementieren. Das Überschreiben von Funktionen bezieht sich auf das Erstellen einer neuen Version der übergeordneten Klassenfunktion innerhalb der untergeordneten Klasse.

Syntax zum Implementieren von Funktionsüberschreibungen in C++

Wenn dieselbe Funktion, die sowohl in der Basis- als auch in der abgeleiteten Klasse definiert ist, unter Verwendung des Objekts aus der abgeleiteten Klasse aufgerufen wird, führt sie die Funktion der abgeleiteten Klasse aus. Dies ist eine Funktion, die in C++ überschrieben wird.

Unten ist die am häufigsten verwendete Syntax für die Implementierung der Funktionsüberschreibung in C++:

// C++-Programm zum Demonstrieren des Überschreibens von Funktionen

#include <iostream>

mit Namensraum std;

Klasse Basis {

Öffentlichkeit:

ungültiger Druck () {

cout << „Basisfunktion“ << endl;

}

};

Klasse Abgeleitet: öffentliche Basis {

Öffentlichkeit:

ungültiger Druck () {

cout << „Abgeleitete Funktion“ << endl;

}

};

int Haupt() {

Abgeleitet abgeleitet1;

abgeleitet1.print();

0 zurückgeben;

}

Ausgabe

Abgeleitete Funktion

Dadurch wird die Basisklassenfunktion innerhalb der abgeleiteten Klasse neu definiert. Daher müssen der Rückgabetyp, die Funktionsparameter und der Funktionsname identisch sein, um das Überschreiben der Funktion zu erreichen.

Beliebte Kurse und Artikel zum Thema Softwareentwicklung

Beliebte Programme
Executive PG-Programm in Softwareentwicklung - IIIT B Blockchain-Zertifikatsprogramm - PURDUE Programm für Cybersicherheitszertifikate - PURDUE MSC in Informatik - IIIT B
Andere beliebte Artikel
Cloud Engineer Gehalt in den USA 2021-22 Gehalt als AWS-Lösungsarchitekt in den USA Backend-Entwicklergehalt in den USA Front-End-Entwicklergehalt in den USA
Gehalt für Webentwickler in den USA Fragen im Vorstellungsgespräch für Scrum Master im Jahr 2022 Wie starte ich 2022 eine Karriere in der Cybersicherheit? Karrieremöglichkeiten in den USA für Ingenieurstudenten

Wie das Überschreiben von Funktionen in C++ funktioniert

OOPs müssen es abgeleiteten Klassen ermöglichen, die Merkmale der Elternklasse zu erben. Das Überschreiben von Funktionen ermöglicht es den Programmierern, jede Funktionalität innerhalb einer Klasse in einer bestimmten abgeleiteten Klasse zu überschreiben. Dies ist besonders nützlich, wenn eine untergeordnete Klasse ihre Funktionsvariante benötigt.

Unten ist ein einfaches Beispiel für das Überschreiben von Funktionen in C++ für Ihr besseres Verständnis:

#include <iostream>

mit Namensraum std;

Klasse parent_class

{

Öffentlichkeit:

virtueller Leerdruck ()

{

cout << „\nDies ist die Methode print()“

” von BaseClass”;

}

};

Klasse abgeleitete_Klasse : öffentliche Elternklasse

{

Öffentlichkeit:

// Funktionsüberschreibung – neue Definition von

// Druckmethode der Basisklasse

Leerdruck ()

{

cout << „\nDies ist die Methode print()“

” der abgeleiteten Klasse”;

}

};

// Treibercode

int Haupt()

{

abgeleitete_Klasse obj;

obj.print();

}

Zugriff auf überschriebene Funktion in C++

Der Bereichsauflösungsoperator wird für den Zugriff auf die überschriebene Funktion der Basisklasse in C++ verwendet. Auf die überschriebene Funktion kann auch zugegriffen werden, indem ein Basisklassenzeiger verwendet wird, um auf ein Objekt der abgeleiteten Klasse zu zeigen, und dann die Funktion von dem Zeiger aufgerufen wird.

// C++-Programm für den Zugriff auf überschriebene Funktion

// in main() mit dem Oszilloskopauflösungsoperator ::

#include <iostream>

mit Namensraum std;

Klasse Basis {

Öffentlichkeit:

ungültiger Druck () {

cout << „Basisfunktion“ << endl;

}

};

Klasse Abgeleitet: öffentliche Basis {

Öffentlichkeit:

ungültiger Druck () {

cout << „Abgeleitete Funktion“ << endl;

}

};

int Haupt() {

Abgeleitet abgeleitet1, abgeleitet2;

abgeleitet1.print();

// Zugriff auf die Funktion print() der Klasse Base

abgeleitet2.Base::print();

0 zurückgeben;

}

Ausgabe

Abgeleitete Funktion

Basisfunktion

Die Anweisung in der Syntax; abgeleitet2.Base::print(); ermöglicht den Zugriff auf die Funktion print() der Klasse Base.

Überschriebene Funktion aus abgeleiteter Klasse aufrufen

Sie können die Vererbung verwenden, um das Verhalten einer Funktion zu ändern. Manchmal müssen Sie jedoch die Funktionalität der Basis-/Elternklasse nicht ändern oder ersetzen. Stattdessen müssen weitere Funktionen hinzugefügt werden.

Nachfolgend finden Sie ein Beispiel für die Verwendung der überschriebenen Aufruffunktion aus einer abgeleiteten Klasse.

// C++-Programm zum Aufrufen der überschriebenen Funktion

// von einer Mitgliedsfunktion der abgeleiteten Klasse

#include <iostream>

mit Namensraum std;

Klasse Basis {

Öffentlichkeit:

ungültiger Druck () {

cout << „Basisfunktion“ << endl;

}

};

Klasse Abgeleitet: öffentliche Basis {

Öffentlichkeit:

ungültiger Druck () {

cout << „Abgeleitete Funktion“ << endl;

// Überschriebene Funktion aufrufen

Basis::print();

}

};

int Haupt() {

Abgeleitet abgeleitet1;

abgeleitet1.print();

0 zurückgeben;

}

Ausgabe

Abgeleitete Funktion

Basisfunktion

In diesem Programm wurde die überschriebene Funktion innerhalb der Derived-Klasse aufgerufen.

Klasse Abgeleitet: öffentliche Basis {

Öffentlichkeit:

ungültiger Druck () {

cout << „Abgeleitete Funktion“ << endl;

Basis::print();

}

};

Der Code Base::print(); ruft die überschriebene Funktion innerhalb der Derived-Klasse auf.

Funktionsüberladung vs. Funktionsüberschreibung

Sie können das Überladen von Funktionen zur Kompilierzeit erreichen, was normalerweise innerhalb der abgeleiteten und Basisklassen erfolgt. Es bietet mehr als eine Funktionsdefinition, indem es die Signatur jeder Funktion ändert, wie den Datentyp oder den Rückgabetyp von Parametern.

Das Überschreiben von Funktionen hingegen kann zur Laufzeit erreicht werden. Die Basisklasse beim Überschreiben wird in der abgeleiteten Klasse mit denselben Parametern und demselben Rückgabetyp neu definiert. Lassen Sie uns herausfinden, welche anderen Merkmale diese beiden Funktionen voneinander unterscheiden.

Überschreiben Überlastung
Nachlass Erfordert Klassenvererbung Erfordert keine Klassenvererbung
Funktionssignatur Unterscheidet sich in der Signatur entweder im Typ oder in der Anzahl der Parameter. Funktionssignaturen bleiben gleich
Funktionsumfang Funktionen unterscheiden sich im Umfang Besitzt den gleichen Umfang
Funktionsverhalten Erforderlich, wenn eine abgeleitete Klassenfunktion anders oder mit zusätzlicher Funktionalität ausgeführt wird als die Basisklassenfunktion. Erforderlich, wenn Funktionen mit demselben Namen basierend auf den angegebenen Parametern unterschiedliche Verhaltensweisen aufweisen.

Fazit

Das Überschreiben von Funktionen in C++ hilft, Speicherplatz zu sparen und die Lesbarkeit und Konsistenz von Code zu erhalten. Es hilft auch dabei, Code leicht wiederverwendbar zu machen. Unnötig zu erwähnen, dass das Wissen über das Überschreiben von Funktionen eine wichtige Fähigkeit ist, wenn Sie eine Zukunft in der Programmierung sehen.

Wenn Sie an einem zuverlässigen und erstklassigen Kurs teilnehmen möchten, um Ihre Karriere in diesem Bereich anzukurbeln, können Sie sich auf upGrad für den Master of Science in Informatik von upGrad anmelden. Einige der wichtigsten Highlights dieses Programms sind wie folgt:-

  • Lernen Sie MERN Stack, Microservices, JavaScript usw.
  • Gesundes Lernen in Cloud Labs
  • Experimentieren Sie mit Tools, die auf Netflix, LinkedIn, Facebook usw. verwendet werden.
  • Machen Sie sich mit über 10 Programmiertools und Sprachen vertraut
  • Studentenbetreuung rund um die Uhr

Wie funktioniert das Überschreiben von Funktionen?

Die Funktion C++ override geschieht durch Vererbung, dh wenn eine Klasse eine andere Klasse erbt. Wenn die abgeleitete Klasse und die Basisklasse Mitgliedsfunktionen mit demselben Rückgabetyp, Namen und derselben Argumentliste besitzen, wird dies als Funktionsüberschreibung bezeichnet.

Was ist der Unterschied zwischen Funktionsüberladung und Funktionsüberschreibung in C++?

Das Überschreiben von Funktionen findet statt, wenn Funktionen denselben Prototyp in der Basis- und der abgeleiteten Klasse besitzen. Das Überladen von Funktionen wird durchgeführt, wenn mehr als eine Funktion mit einem ähnlichen Namen in einer Klasse vorhanden ist.

Was sind die Merkmale des Funktionsüberladens in C++?

Das Überladen von Funktionen in C++ wird hauptsächlich verwendet, um die Lesbarkeit von Code zu verbessern. Programmierer verwenden es, damit sie sich nicht zahlreiche Funktionsnamen merken müssen. Klassen mit mehreren Funktionen, unterschiedlichen Parametern und demselben Namen werden als überladen bezeichnet.