C ++ függvény-túlterhelés (példákkal)

Ebben az oktatóanyagban példákkal ismerkedhetünk meg a C ++ változatban a funkció túlterhelésével.

A C ++ - ban két függvénynek ugyanaz a neve lehet, ha az átadott argumentumok száma és / vagy típusa eltér.

Ezeket az azonos nevű, de különböző argumentumú függvényeket túlterhelt függvényeknek nevezzük. Például:

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

Itt mind a 4 függvény túlterhelt.

Figyelje meg, hogy mind a 4 függvény visszatérési típusa nem azonos. A túlterhelt függvényeknek lehetnek különböző visszatérési típusai, de lehet, hogy eltérő argumentumokkal kell rendelkezniük. Például,

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

Itt mindkét függvénynek ugyanaz a neve, azonos típusa és azonos számú argumentuma van. Ezért a fordító hibát dob.

Funkció Túlterhelés különböző típusú paraméterekkel

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

Kimenet

 -5 = 5 abszolút értéke 5,5 = 5,5 abszolút értéke
Az abszolút () függvény túlterhelésének működése

Ebben a programban túlterheljük a absolute()függvényt. A függvényhívás során átadott paraméter típusa alapján a megfelelő függvény meghívásra kerül.

Funkció túlterhelése különböző számú paraméter használatával

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

Kimenet

 Egész szám: 5 Úszó szám: 5,5 Egész szám: 5 és dupla szám: 5,5

Itt a display()függvényt háromszor hívják meg különböző argumentumokkal. Az átadott argumentumok számától és típusától függően a megfelelő display()függvény meghívásra kerül.

A kijelző () funkció túlterhelésének működése

Mindezek a függvények visszatérési típusa megegyezik, de a funkciók túlterhelésének nem feltétlenül szükséges.

Megjegyzés: A C ++ rendszerben számos szabványos könyvtárfunkció túlterhelt. Például a sqrt()funkciót is igénybe vehet double, float, int,stb paramétereket. Ez azért lehetséges, mert a sqrt()funkció túlterhelt C ++ nyelven.

érdekes cikkek...