У цьому підручнику ми з прикладами дізнаємося про перевантаження функції в 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()
викликається відповідна функція.
Тип повернення всіх цих функцій однаковий, але це не обов'язково має бути при перевантаженні функції.
Примітка: У C ++ багато стандартних функцій бібліотеки перевантажені. Наприклад, sqrt()
функція може приймати double
, float
, і int,
т.д. в якості параметрів. Це можливо, оскільки sqrt()
функція перевантажена в C ++.