Преоптерећење функције Ц ++ (са примерима)

У овом упутству ћемо научити о преоптерећењу функције у Ц ++ са примерима.

У Ц ++-у две функције могу имати исто име ако је број и / или врста прослеђених аргумената различит.

Ове функције које имају исто име, али различити аргументи су познате као преоптерећене функције. На пример:

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

Овде су све 4 функције преоптерећене.

Приметите да типови повратка све ове 4 функције нису исти. Преоптерећене функције могу или не морају имати различите типове враћања, али морају имати различите аргументе. На пример,

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

Овде обе функције имају исто име, исти тип и исти број аргумената. Стога ће компајлер избацити грешку.

Преоптерећење функције помоћу различитих врста параметара

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

Оутпут

 Апсолутна вредност -5 = 5 Апсолутна вредност 5,5 = 5,5
Рад преоптерећења за функцију абсолуте ()

У овом програму преоптерећујемо absolute()функцију. На основу типа параметра прослеђеног током позива функције, позива се одговарајућа функција.

Преоптерећење функције помоћу различитог броја параметара

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

Оутпут

 Цео број: 5 Флоат број: 5,5 Цео број: 5 и двоструки број: 5,5

Овде се display()функција позива три пута са различитим аргументима. У зависности од броја и врсте прослеђених аргумената, display()позива се одговарајућа функција.

Рад преоптерећења за функцију дисплаи ()

Тип повратка свих ових функција је исти, али то не мора бити случај код преоптерећења функције.

Напомена: У Ц ++-у су многе стандардне функције библиотеке преоптерећене. На пример, sqrt()функција може узети double, float, int,итд као параметри. То је могуће јер је sqrt()функција преоптерећена у Ц ++.

Занимљиви Чланци...