C ++ Funksjon Overbelastning (med eksempler)

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
Arbeider med overbelastning for absolutt () -funksjonen

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.

Arbeider med overbelastning for display () -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 ++.

Interessante artikler...