I denne opplæringen vil vi lære om funksjonen overbelastning i C ++ med eksempler.
I C ++ kan to funksjoner ha samme navn hvis antallet og / eller typen argumenter som er sendt, er forskjellig.
Disse funksjonene har samme navn, men forskjellige argumenter, er kjent som overbelastede funksjoner. For eksempel:
// same name different arguments int test() ( ) int test(int a) ( ) float test(double a) ( ) int test(int a, double b) ( )
Her er alle de 4 funksjonene overbelastede funksjoner.
Legg merke til at returtypene til alle disse 4 funksjonene ikke er de samme. Overbelastede funksjoner kan ha forskjellige returtyper eller ikke, men de må ha forskjellige argumenter. For eksempel,
// Error code int test(int a) ( ) double test(int b)( )
Her har begge funksjonene samme navn, samme type og samme antall argumenter. Derfor vil kompilatoren kaste en feil.
Funksjon Overbelastning ved hjelp av forskjellige typer parametere
// 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; )
Produksjon
Absolutt verdi -5 = 5 Absolutt verdi 5,5 = 5,5

I dette programmet overbelaster vi absolute()
funksjonen. Basert på typen parameter som ble sendt under funksjonsanropet, kalles den tilsvarende funksjonen.
Funksjon Overbelastning ved hjelp av forskjellige antall parametere
#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; )
Produksjon
Heltall: 5 Flytnummer: 5,5 Heltall: 5 og dobbeltnummer: 5,5
Her display()
kalles funksjonen tre ganger med forskjellige argumenter. Avhengig av antall og type argumenter som er sendt, display()
kalles den tilsvarende funksjonen.

Returtypen til alle disse funksjonene er den samme, men det trenger ikke være tilfelle for funksjonsoverbelastning.
Merk: I C ++ er mange standard biblioteksfunksjoner overbelastet. For eksempel, det sqrt()
kan ta funksjon double
, float
, int,
etc. som parametere. Dette er mulig fordi sqrt()
funksjonen er overbelastet i C ++.