C ++ - Funktion Überladen

C ++ - Funktion Überladen

C ++ ist eine flexible Programmiersprache Allzwecke Programmiersprache. Diese Programmiersprache wurde ursprünglich von Bjarne Stroustrup, einem dänischen Informatiker, 1985 erstellt. C ++ unterstützt Polymorphismus, Vererbung und mehr. Dieser Artikel deckt die Funktion Überladung ab, um das Kompilierzeitpolymorphismus in der C ++-Programmiersprache zu erreichen.

Was ist eine Funktion?

Eine Funktion ist nichts weiter als ein bestimmtes Code -Stück, das eine bestimmte Aufgabe basierend auf den bereitgestellten Eingaben ausführt, und gibt die angeforderten Ergebnisse an den Benutzer in Form einer Ausgabe zurück. Funktionen werden verwendet, um sich wiederholte Code in großen Codebasen zu beseitigen.

Nachdem Sie eine Funktion definiert haben, können Sie sie zu einem späteren Zeitpunkt wiederverwenden, entweder im selben Programm oder in einem anderen Programm.

Funktionssyntax

Eine Funktion in C ++ hat die folgende Syntax:

returntype FunktionName (parameter_list)



return return_value;

Die Anweisung des ReturnType, der Parameter_List und der Rückkehr sind optional. Eine Funktion in C ++ kann maximal einen Wert zurückgeben. Wenn eine Funktion keinen Wert zurückgibt, sollte der Return -Typ als void definiert werden.

Was ist Funktion Überladen?

In C ++ können mehrere Funktionsdefinitionen den gleichen Funktionsnamen haben, jedoch mit unterschiedlichen Parametern. Dies wird als Funktion Überladen bezeichnet. Mit Hilfe der Funktion Überladungsfunktion des Kompilierzeit kann in C ein Kompilierungs-Time-Polymorphismus erreicht werden++.

Funktionen können auf folgende Weise überladen werden:

  1. Die Anzahl der Parameter kann unterschiedlich sein
  2. Der Datentyp der Parameter kann unterschiedlich sein
  3. Die Abfolge der Parameter kann unterschiedlich sein

Der Rückgabewert wird jedoch für die Funktion Überladung nicht berücksichtigt.

Die folgenden Funktionen werden überladen:

  1. Int Addition (int a, int b)
  2. Float Addition (Float F, Gloat G)
  3. Float Addition (Float f, int i)
  4. Float Addition (int i, float f)
  5. Int Addition (int a, int b, int c)
  6. Float Addition (Float F, Float G, Float H)

Wie Sie sehen können, kann es mit Hilfe der Funktion Überladungsfunktion in C ++ mehrere Definitionen/Funktionen mit demselben Funktionsnamen und im selben Bereich geben.

Ohne die Funktion Überladungsfunktion der Funktion müssten Sie für jede Variation eine separate Funktion [z. B. Addition_1 (), Addition_2 () usw.] schreiben. Zum Beispiel müssen Sie möglicherweise Addition_1 () schreiben, um zwei Ganzzahlen hinzuzufügen, Addition_2 (), um zwei Schwimmer hinzuzufügen, usw. Wie Sie oben sehen können, kann die Funktion Überladungsfunktion für Funktionen verwendet werden.

Die folgenden Funktionen werden nicht als überlastet angesehen, da der einzige Unterschied zwischen diesen beiden der Rückgabetyp ist (der Rückgabetyp wird für die Funktion Überladung in C ++ nicht berücksichtigt):

  1. Int Addition (int a, int b)
  2. Float Addition (int a, int b)

Beispiele

Nachdem Sie das Konzept der Funktionsüberlastung verstehen, werden wir einige Arbeitsbeispielprogramme durchlaufen, um dieses Konzept klarer zu verstehen. Wir werden die folgenden Beispiele abdecken:

  1. Beispiel 1: Einfache Funktion
  2. Beispiel 2: Einfache Zusatzfunktion
  3. Beispiel 3: Funktion Überlast (1)
  4. Beispiel 4: Funktion Überlast (2)
  5. Beispiel 5: Funktion Überlast (3)

Die ersten beiden Beispiele erklären, wie normale Funktionen in C ++ funktionieren, während die letzten drei Beispiele die Funktion Überladungsfunktion in C zeigen++.

Beispiel 1: Einfache Funktion

In diesem Beispiel werden wir zeigen, wie eine einfache Funktion definiert und in C aufgerufen werden kann++. Wir werden eine Klasse namens "Anzeige" und eine öffentliche Funktion "Display () definieren.Aus der Funktion "main ()" werden wir die Funktion "display ()" mit Hilfe des Klassenobjekts "Anzeige" (D) aufrufen.

#enthalten
Verwenden von Namespace STD;
Klassenanzeige

öffentlich:
void display ()
Cout << "Hello World!" << endl;

;
int main ()

Anzeige D;
D.Anzeige();
Rückkehr 0;

Beispiel 2: Einfache Zusatzfunktion

In diesem Beispiel werden wir demonstrieren, wie eine einfache „Addition ()“ -Funktion in C definiert werden kann++. Wir werden eine Klasse namens "Demoadd" und eine öffentliche Funktion namens "Addition () definieren.Aus der Funktion "main ()" werden wir die Funktion "Addition ()" mit Hilfe des Objekts "Demoadd" -Klass (D) aufrufen.

In diesem Beispiel akzeptiert die aktuelle Implementierung der Funktion „Addition ()“ nur zwei Ganzzahlparameter. Das bedeutet, dass die aktuelle Funktion „Addition ()“ nur zwei Ganzzahlen hinzufügen kann.

Um drei Ganzzahlen anstelle von zwei hinzuzufügen, kann eine Funktion mit einem anderen Namen wie „Addition_1 ()“ definiert werden. In C ++ kann eine Funktion überladen werden, was bedeutet, dass eine weitere Definition der Funktion „Addition ()“ definiert werden kann, um drei Ganzzahlen hinzuzufügen und denselben Namen zu halten, i, i.e., "Zusatz().Im nächsten Beispiel werden wir uns ansehen, wie die Funktion „Addition ()“ überlastet werden kann.

#enthalten
Verwenden von Namespace STD;
Klasse Demoadd

öffentlich:
int addition (int a, int b)
int Ergebnis;
Ergebnis = a + b;
Rückgabeergebnis;

;
int main ()
Demoadd D;
int i1 = 10, i2 = 20, res;
res = d.Addition (i1, i2);
Cout << "Result = " << res << endl;
Rückkehr 0;

Beispiel 3: Funktion Überlast (1)

Im vorherigen Beispiel haben wir die Funktion „Addition ()“ definiert, um zwei Ganzzahlen hinzuzufügen und das berechnete Ergebnis zurückzugeben. In diesem Beispiel werden wir nun die Funktion „Addition ()“ überladen, um drei Ganzzahlen hinzuzufügen. Wir können also die Funktion „Addition ()“ mit zwei ganzzahligen Argumenten sowie drei ganzzahligen Argumenten aufrufen.

Ohne die Funktion Überladung der Funktion müssten wir eine andere Funktion mit einem anderen Namen schreiben.

#enthalten
Verwenden von Namespace STD;
Klasse Demoadd

öffentlich:
// Erste Funktionsdefinition von Addition ()
Int Addition (int a, int b)

int Ergebnis;
Ergebnis = a + b;
Rückgabeergebnis;

// Überlastete Version von Addition () Funktion
Int Addition (int a, int b, int c)

int Ergebnis;
Ergebnis = a + b + c;
Rückgabeergebnis;

;
int main ()

Demoadd D;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.Addition (i1, i2); // Addition () mit 2 Parametern
res2 = d.Addition (i1, i2, i3); // Addition () mit 3 Parametern
Cout << "Result = " << res1 << endl;
Cout << "Result = " << res2 << endl;
Rückkehr 0;

Beispiel 4: Funktion Überlast (2)

In früheren Abschnitten dieses Artikels haben Sie erfahren, dass die Überladung von Funktionen basierend auf Unterschieden im Parametertyp durchgeführt werden kann. Hier haben wir die Funktion „Addition ()“ basierend auf dem Datentyp des Parameters überladen. In der ersten Version der Additionsfunktion werden wir zwei Variablen vom Typ ganzzahliger Typ hinzufügen. und in der zweiten Version werden wir zwei Variablen vom Float -Typ hinzufügen.

#enthalten
Verwenden von Namespace STD;
Klasse Demoadd

öffentlich:
// Erste Definition von Addition ()
Int Addition (int a, int b)

int Ergebnis;
Ergebnis = a + b;
Rückgabeergebnis;

// Überlastete Funktionsdefinition
Float Addition (Float F, Float G)

Float -Ergebnis;
Ergebnis = f + g;
Rückgabeergebnis;

;
int main ()
Demoadd D;
int i1 = 10, i2 = 20, res1;
float f1 = 10.5, f2 = 20.7, res2;
res1 = d.Addition (i1, i2); // Addition (int a, int b) wird aufgerufen
res2 = d.Addition (F1, F2); // Addition (float f, flach g) wird aufgerufen
Cout << "Result = " << res1 << endl;
Cout << "Result = " << res2 << endl;
Rückkehr 0;

Beispiel 5: Funktion Überlast (3)

In diesem Beispiel wird die Funktion „Addition ()“ basierend auf Unterschieden in der Sequenz der Parameterliste überladen. Dies ist eine weitere Möglichkeit, eine Funktion in C zu überladen++.

#enthalten
Verwenden von Namespace STD;
Klasse Demoadd

öffentlich:
// Erste Funktionsdefinition von Addition () Funktion
Float Addition (int a, float b)

Float -Ergebnis;
Ergebnis = (float) a + b;
Rückgabeergebnis;

// Überladene Funktionsdefinition von Addition () -Funktion
Float Addition (Float A, int B)

Float -Ergebnis;
Ergebnis = a + (float) b;
Rückgabeergebnis;

;
int main ()

Demoadd D;
int i1 = 10;
float f1 = 10.5, res1, res2;
res1 = d.Addition (i1, f1); // Addition (int a, float b) wird aufgerufen
res2 = d.Addition (F1, I1); // Addition (float a, int b) wird aufgerufen
Cout << "Result = " << res1 << endl;
Cout << "Result = " << res2 << endl;
Rückkehr 0;

Abschluss

C ++ ist eine allgemeine und flexible Programmiersprache, die in verschiedenen Domänen häufig verwendet wird. Diese Programmiersprache unterstützt sowohl Kompilierungszeit- als auch Laufzeitpolymorphismus. In diesem Artikel haben Sie gelernt, wie man in C ++ Kompilierungs-Zeitpolymorphismus mithilfe der Funktion Überladungsfunktion für Funktionen erreicht. Dies ist eine sehr hilfreiche Funktion in C ++, mit der Programmierer lesbarer Code schreiben können. Es kann auch hilfreich sein, um wiederverwendbares Code zu schreiben.