Претоварване на функциите на C ++ (с примери)

В този урок ще научим за претоварването на функциите в C ++ с примери.

В C ++ две функции могат да имат едно и също име, ако броят и / или видът на предадените аргументи е различен.

Тези функции с едно и също име, но различни аргументи са известни като претоварени функции. Например:

 // 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()се извиква съответната функция.

Работа с претоварване за функцията display ()

Типът на връщане на всички тези функции е един и същ, но това не е необходимо при претоварване на функцията.

Забележка: В C ++ много стандартни библиотечни функции са претоварени. Например, sqrt()функцията може да отнеме double, float, int,и др като параметри. Това е възможно, защото sqrt()функцията е претоварена в C ++.

Интересни статии...