Preobremenitev funkcije C ++ (z primeri)

V tej vadnici bomo s primeri spoznali preobremenitev funkcije v jeziku C ++.

V C ++ imata lahko dve funkciji isto ime, če se število in / ali vrsta podanih argumentov razlikuje.

Te funkcije z istim imenom, vendar različnimi argumenti, so znane kot preobremenjene funkcije. Na primer:

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

Tu so vse 4 funkcije preobremenjene.

Upoštevajte, da vrste vračanja vseh teh 4 funkcij niso enake. Preobremenjene funkcije imajo lahko različne vrste vrnitve, vendar morajo imeti različne argumente. Na primer

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

Tu imata obe funkciji isto ime, isti tip in enako število argumentov. Zato bo prevajalnik vrnil napako.

Preobremenitev funkcije z uporabo različnih vrst parametrov

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

Izhod

 Absolutna vrednost -5 = 5 Absolutna vrednost 5,5 = 5,5
Delovanje preobremenitve za funkcijo absolute ()

V tem programu preobremenimo absolute()funkcijo. Glede na vrsto parametra, ki je bil poslan med klicem funkcije, se pokliče ustrezna funkcija.

Preobremenitev funkcije z različnim številom parametrov

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

Izhod

 Število celih števil: 5 Število floatov: 5,5 Število celih števil: 5 in dvojno število: 5,5

Tu se display()funkcija trikrat pokliče z različnimi argumenti. Glede na število in vrsto podanih argumentov display()se pokliče ustrezna funkcija.

Delovanje preobremenitve za funkcijo display ()

Vrnitev vseh teh funkcij je enaka, vendar ni nujno, da gre za preobremenitev funkcije.

Opomba: V C ++ so številne standardne funkcije knjižnice preobremenjene. Na primer, sqrt()lahko funkcija traja double, float, int,itd, kot parametri. To je mogoče, ker je sqrt()funkcija v C ++ preobremenjena.

Zanimive Članki...