C ++ funktion overbelastning (med eksempler)

I denne vejledning lærer vi om funktionens overbelastning i C ++ med eksempler.

I C ++ kan to funktioner have samme navn, hvis antallet og / eller typen af ​​argumenter, der er sendt, er forskellig.

Disse funktioner har samme navn, men forskellige argumenter kaldes overbelastede funktioner. 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 4 funktioner overbelastede funktioner.

Bemærk, at returneringstyperne for alle disse 4 funktioner ikke er de samme. Overbelastede funktioner har måske ikke forskellige returtyper, men de skal have forskellige argumenter. For eksempel,

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

Her har begge funktioner samme navn, samme type og samme antal argumenter. Derfor vil compileren kaste en fejl.

Funktion Overbelastning ved hjælp af forskellige typer parametre

 // 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; )

Produktion

 Absolut værdi på -5 = 5 Absolut værdi på 5,5 = 5,5
Arbejder med overbelastning for den absolutte () funktion

I dette program overbelaster vi absolute()funktionen. Baseret på den type parameter, der er sendt under funktionsopkaldet, kaldes den tilsvarende funktion.

Funktion Overbelastning ved hjælp af forskellige antal parametre

 #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; )

Produktion

 Heltal nummer: 5 Flydende nummer: 5,5 Heltal nummer: 5 og dobbelt nummer: 5,5

Her display()kaldes funktionen tre gange med forskellige argumenter. Afhængig af antallet og typen af ​​argumenter, der sendes, display()kaldes den tilsvarende funktion.

Arbejder med overbelastning til display () -funktionen

Returtypen for alle disse funktioner er den samme, men det behøver ikke være tilfældet for funktionsoverbelastning.

Bemærk: I C ++ er mange standardbiblioteksfunktioner overbelastede. For eksempel sqrt()kan funktionen tage double, float, int,etc. som parametre. Dette er muligt, fordi sqrt()funktionen er overbelastet i C ++.

Interessante artikler...