C ++ -funktionsöverbelastning (med exempel)

I den här handledningen lär vi oss om funktionens överbelastning i C ++ med exempel.

I C ++ kan två funktioner ha samma namn om antalet och / eller typen av argument som skickas är annorlunda.

Dessa funktioner med samma namn men olika argument kallas överbelastade funktioner. Till exempel:

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

Här är alla fyra funktionerna överbelastade funktioner.

Observera att returtyperna för alla dessa fyra funktioner inte är desamma. Överbelastade funktioner kan ha olika returtyper eller inte men de måste ha olika argument. Till exempel,

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

Här har båda funktionerna samma namn, samma typ och samma antal argument. Därför kommer kompilatorn att kasta ett fel.

Funktionsöverbelastning med olika typer av parametrar

 // 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ärde -5 = 5 Absolut värde 5,5 = 5,5
Arbetar med överbelastning för den absoluta funktionen ()

I det här programmet överbelastar vi absolute()funktionen. Baserat på typen av parameter som skickats under funktionsanropet anropas motsvarande funktion.

Funktionsöverbelastning med olika antal parametrar

 #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

 Heltalsnummer: 5 Flytnummer: 5,5 Heltalsnummer: 5 och dubbelnummer: 5,5

Här display()kallas funktionen tre gånger med olika argument. Beroende på antalet och typen av skickade argument display()anropas motsvarande funktion.

Arbetar med överbelastning för display () -funktionen

Returtypen för alla dessa funktioner är densamma, men det behöver inte vara fallet för funktionsöverbelastning.

Obs! I C ++ är många standardbiblioteksfunktioner överbelastade. Till exempel sqrt()kan funktionen ta double, float, int,etc. som parametrar. Detta är möjligt eftersom sqrt()funktionen är överbelastad i C ++.

Intressanta artiklar...