Overbelasting van C ++ functie (met voorbeelden)

In deze tutorial zullen we met voorbeelden leren over de functie-overbelasting in C ++.

In C ++ kunnen twee functies dezelfde naam hebben als het aantal en / of type doorgegeven argumenten verschillend is.

Deze functies met dezelfde naam maar met verschillende argumenten staan ​​bekend als overbelaste functies. Bijvoorbeeld:

 // same name different arguments int test() ( ) int test(int a) ( ) float test(double a) ( ) int test(int a, double b) ( )

Hier zijn alle 4 functies overbelaste functies.

Merk op dat de retourtypen van al deze 4 functies niet hetzelfde zijn. Overbelaste functies kunnen al dan niet verschillende retourtypen hebben, maar ze moeten verschillende argumenten hebben. Bijvoorbeeld,

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

Hier hebben beide functies dezelfde naam, hetzelfde type en hetzelfde aantal argumenten. Daarom zal de compiler een fout genereren.

Functieoverbelasting met verschillende soorten parameters

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

Uitvoer

 Absolute waarde van -5 = 5 Absolute waarde van 5,5 = 5,5
Werking van overbelasting voor de absolute () functie

In dit programma overbelasten we de absolute()functie. Op basis van het type parameter dat is doorgegeven tijdens de functieaanroep, wordt de bijbehorende functie aangeroepen.

Functieoverbelasting met een verschillend aantal parameters

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

Uitvoer

 Geheel getal: 5 Float-getal: 5,5 Geheel getal: 5 en dubbel getal: 5,5

Hier wordt de display()functie drie keer aangeroepen met verschillende argumenten. Afhankelijk van het aantal en het type doorgegeven argumenten, wordt de bijbehorende display()functie aangeroepen.

Werking van overbelasting voor de functie display ()

Het retourtype van al deze functies is hetzelfde, maar dat hoeft niet het geval te zijn voor functie-overbelasting.

Opmerking: in C ++ zijn veel standaard bibliotheekfuncties overbelast. Bijvoorbeeld, het sqrt()kan functioneren nemen double, float, int,enz parameters. Dit is mogelijk omdat de sqrt()functie overbelast is in C ++.

Interessante artikelen...