Überladen von C ++ - Funktionen (mit Beispielen)

In diesem Tutorial lernen wir anhand von Beispielen die Funktionsüberladung in C ++ kennen.

In C ++ können zwei Funktionen denselben Namen haben, wenn die Anzahl und / oder der Typ der übergebenen Argumente unterschiedlich sind.

Diese Funktionen mit demselben Namen, aber unterschiedlichen Argumenten werden als überladene Funktionen bezeichnet. Beispielsweise:

 // same name different arguments int test() ( ) int test(int a) ( ) float test(double a) ( ) int test(int a, double b) ( )

Hier sind alle 4 Funktionen überladene Funktionen.

Beachten Sie, dass die Rückgabetypen aller dieser 4 Funktionen nicht identisch sind. Überladene Funktionen können unterschiedliche Rückgabetypen haben oder nicht, sie müssen jedoch unterschiedliche Argumente haben. Beispielsweise,

 // Error code int test(int a) ( ) double test(int b)( )

Hier haben beide Funktionen den gleichen Namen, den gleichen Typ und die gleiche Anzahl von Argumenten. Daher gibt der Compiler einen Fehler aus.

Funktionsüberladung mit verschiedenen Parametertypen

 // Program to compute absolute value // Works for both int and float #include using namespace std; // function with float type parameter float absolute(float var)( if (var < 0.0) var = -var; return var; ) // function with int type parameter int absolute(int var) ( if (var < 0) var = -var; return var; ) int main() ( // call function with int type parameter cout << "Absolute value of -5 = " << absolute(-5) << endl; // call function with float type parameter cout << "Absolute value of 5.5 = " << absolute(5.5f) << endl; return 0; )

Ausgabe

 Absolutwert von -5 = 5 Absolutwert von 5,5 = 5,5
Überladung für die absolute () Funktion funktionieren

In diesem Programm überladen wir die absolute()Funktion. Basierend auf der Art des Parameters, der während des Funktionsaufrufs übergeben wird, wird die entsprechende Funktion aufgerufen.

Funktionsüberladung mit unterschiedlicher Anzahl von Parametern

 #include using namespace std; // function with 2 parameters void display(int var1, double var2) ( cout << "Integer number: " << var1; cout << " and double number: " << var2 << endl; ) // function with double type single parameter void display(double var) ( cout << "Double number: " << var << endl; ) // function with int type single parameter void display(int var) ( cout << "Integer number: " << var << endl; ) int main() ( int a = 5; double b = 5.5; // call function with int type parameter display(a); // call function with double type parameter display(b); // call function with 2 parameters display(a, b); return 0; )

Ausgabe

 Ganzzahl: 5 Gleitkommazahl: 5,5 Ganzzahl: 5 und Doppelnummer: 5,5

Hier wird die display()Funktion dreimal mit unterschiedlichen Argumenten aufgerufen. Abhängig von der Anzahl und Art der übergebenen Argumente wird die entsprechende display()Funktion aufgerufen.

Überladung für die Funktion display ()

Der Rückgabetyp aller dieser Funktionen ist derselbe, dies muss jedoch bei einer Funktionsüberladung nicht der Fall sein.

Hinweis: In C ++ sind viele Standardbibliotheksfunktionen überladen. Zum Beispiel kann die sqrt()kann Funktion übernehmen double, float, int,usw. als Parameter. Dies ist möglich, weil die sqrt()Funktion in C ++ überladen ist.

Interessante Beiträge...