Перевантаження функції 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 ()

У цій програмі ми перевантажуємо 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 ++.

Цікаві статті...