Funktionsüberladung ist ein Merkmal der objektorientierten Programmierung, bei der zwei oder mehr Funktionen denselben Namen, aber unterschiedliche Parameter haben können. Wenn ein Funktionsname mit verschiedenen Jobs überladen ist, spricht man von Funktionsüberladung. Beim Funktionsüberladen sollte der Funktionsname derselbe und die Argumente unterschiedlich sein. Funktionsüberladung kann als Beispiel für eine Polymorphismusfunktion in C++ betrachtet werden.
Wenn mehrere Funktionen denselben Namen haben, die Parameter der Funktionen jedoch unterschiedlich sein sollten, spricht man von Funktionsüberladung.
Wenn wir nur eine Operation ausführen müssen und die Funktionen denselben Namen haben, erhöht sich die Lesbarkeit des Programms.
Angenommen, Sie müssen die angegebenen Zahlen addieren, es kann jedoch eine beliebige Anzahl von Argumenten geben. Wenn Sie die Funktion wie a(int,int) für zwei Parameter und b(int,int,int) für drei Parameter schreiben, dann ist dies der Fall Es kann für Sie schwierig sein, das Verhalten der Funktion zu verstehen, da ihr Name unterschiedlich ist.
Die Parameter sollten eine oder mehrere der folgenden Bedingungen für Funktionsüberladung erfüllen:
Ganzzahl zum String in Java
- Parameter sollten einen anderen Typ haben
add(int a, int b)
add(doppelt a, doppelt b)
Nachfolgend finden Sie die Umsetzung der obigen Diskussion:
C++
#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>double> a,>double> b)> {> >cout << endl <<>'sum = '> << (a + b);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5.3, 6.2);> >return> 0;> }> |
>
>Ausgabe
sum = 12 sum = 11.5>
- Parameter sollten eine andere Nummer haben
add(int a, int b)
add(int a, int b, int c)
Nachfolgend finden Sie die Umsetzung der obigen Diskussion:
C++
#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout << endl <<>'sum = '> << (a + b + c);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5, 6, 4);> >return> 0;> }> |
>
>Ausgabe
sum = 12 sum = 15>
- Parameter sollten eine andere Reihenfolge von Parametern haben.
add(int a, double b)
add(double a, int b)
Nachfolgend finden Sie die Umsetzung der obigen Diskussion:
C++
#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum = '><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum = '<<(a+b); } // Driver code int main() { add(10,2.5); add(5.5,6); return 0; }> |
>
>Ausgabe
sum = 12.5 sum = 11.5>
Im Folgenden finden Sie ein einfaches C++-Beispiel zur Veranschaulichung der Funktionsüberladung.
CPP
Typoskript-foreach-Schleife
#include> using> namespace> std;> void> print(>int> i) {> >cout <<>' Here is int '> << i << endl;> }> void> print(>double> f) {> >cout <<>' Here is float '> << f << endl;> }> void> print(>char> const> *c) {> >cout <<>' Here is char* '> << c << endl;> }> int> main() {> >print(10);> >print(10.10);> >print(>'ten'>);> >return> 0;> }> |
>
>Ausgabe
Here is int 10 Here is float 10.1 Here is char* ten>
C++
abstrakte Klasse in Java
#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout<'sum ='<<(a+b+c); } main() { add(10,2); add(5,6,4); return 0; }> |
>
>
C++
#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum ='<<(a+b); } main() { add(10,2.5); add(5.5,6); return 0; }> |
>
>
Wie funktioniert Funktionsüberladung?
- Genaue Übereinstimmung :- (Funktionsname und Parameter)
- Wenn A Es wurde keine exakte Übereinstimmung gefunden: –
->Char, Unsigned char und short werden zu einem int heraufgestuft.
->Float wird auf das Doppelte heraufgestuft
- Wenn keine Übereinstimmung gefunden wird :
->C++ versucht, über die Standardkonvertierung eine Übereinstimmung zu finden.
- SONST FEHLER
- Funktionsüberladung und Rückgabetyp
- Funktionen, die in C++ nicht überladen werden können
- Funktionsüberladung und const-Schlüsselwort
- Funktionsüberladung vs. Funktionsüberschreibung in C++
Aktuelle Artikel zur Funktionsüberladung in C++