capypad
0 Tage Serie
cpp / beginner
Snippet

Grundlagen der Funktionenüberladung

Funktionsüberladung erlaubt mehrere Funktionen mit dem gleichen Namen aber verschiedenen Parametern. Der Compiler unterscheidet sie anhand der Anzahl, dem Typ oder der Reihenfolge der Parameter. Wenn du add aufrufst, wählt der Compiler die Version die zu deinen Argumenten passt. Dies macht den Code lesbarer, da verwandte Operationen den gleichen konzeptuellen Namen teilen.

snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int add(int a, int b) {
return a + b;
}
 
double add(double a, double b) {
return a + b;
}
 
int add(int a, int b, int c) {
return a + b + c;
}
 
int main() {
std::cout << "int + int: " << add(3, 5) << std::endl;
std::cout << "double + double: " << add(2.5, 3.7) << std::endl;
std::cout << "three ints: " << add(1, 2, 3) << std::endl;
return 0;
}
Erklärung
1
int add(int a, int b) {
Erste Überladung: akzeptiert zwei Integer
2
return a + b;
Gibt Summe von zwei Integern zurück
3
}
Schließt die erste add-Funktion ab
4
double add(double a, double b) {
Zweite Überladung: akzeptiert zwei Doubles
5
return a + b;
Gibt Summe von zwei Doubles zurück
6
}
Schließt die zweite add-Funktion ab
7
int add(int a, int b, int c) {
Dritte Überladung: akzeptiert drei Integer
8
return a + b + c;
Gibt Summe von drei Integern zurück
9
}
Schließt die dritte add-Funktion ab
10
std::cout << "int + int: " << add(3, 5) << std::endl;
Ruft Zwei-Argument-Integer-Version auf, gibt 8 aus
11
std::cout << "double + double: " << add(2.5, 3.7) << std::endl;
Ruft Zwei-Argument-Double-Version auf, gibt 6.2 aus
12
std::cout << "three ints: " << add(1, 2, 3) << std::endl;
Ruft Drei-Argument-Integer-Version auf, gibt 6 aus