logo

Перевантаження функцій у C++

Перевантаження функцій — це особливість об’єктно-орієнтованого програмування, де дві або більше функцій можуть мати однакові назви, але різні параметри. Якщо назва функції перевантажена різними завданнями, це називається перевантаженням функції. У функції перевантаження функції назва має бути однаковою, а аргументи мають бути різними. Перевантаження функцій можна розглядати як приклад функції поліморфізму в C++.

Якщо кілька функцій мають однакові назви, але параметри функцій повинні бути різними, це відомо як перевантаження функцій.
Якщо нам потрібно виконати лише одну операцію, а наявність однакових імен функцій підвищує читабельність програми.
Припустімо, вам потрібно виконати додавання заданих чисел, але може бути будь-яка кількість аргументів, якщо ви напишете функцію, таку як a(int,int) для двох параметрів і b(int,int,int) для трьох параметрів, тоді вона Вам може бути важко зрозуміти поведінку функції, оскільки її назва відрізняється.

Параметри мають відповідати одній або більше ніж одній із наведених нижче умов для перевантаження функції:



версії Android
  • Параметри повинні мати інший тип

add(int a, int b)
додати (подвійне a, подвійне b)

Нижче наведено реалізацію вищезазначеного обговорення:

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>double> a,>double> b)> {> >cout << endl <<>'sum = '> << (a + b);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5.3, 6.2);> >return> 0;> }>

>

>

Вихід

sum = 12 sum = 11.5>
  • Параметри повинні мати інший номер

add(int a, int b)
add(int a, int b, int c)

Нижче наведено реалізацію вищезазначеного обговорення:

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout <<>'sum = '> << (a + b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout << endl <<>'sum = '> << (a + b + c);> }> // Driver code> int> main()> {> >add(10, 2);> >add(5, 6, 4);> >return> 0;> }>

>

>

Вихід

sum = 12 sum = 15>
  • Параметри повинні мати іншу послідовність параметрів.

add(int a, double b)
add(double a, int b)

Нижче наведено реалізацію вищезазначеного обговорення:

C++




#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum = '><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum = '<<(a+b); } // Driver code int main() { add(10,2.5); add(5.5,6); return 0; }>

>

>

Вихід

sum = 12.5 sum = 11.5>

Нижче наведено простий приклад C++ для демонстрації перевантаження функції.

CPP




символ до int у java
#include> using> namespace> std;> void> print(>int> i) {> >cout <<>' Here is int '> << i << endl;> }> void> print(>double> f) {> >cout <<>' Here is float '> << f << endl;> }> void> print(>char> const> *c) {> >cout <<>' Here is char* '> << c << endl;> }> int> main() {> >print(10);> >print(10.10);> >print(>'ten'>);> >return> 0;> }>

>

>

Вихід

 Here is int 10 Here is float 10.1 Here is char* ten>

C++




#include> using> namespace> std;> void> add(>int> a,>int> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>int> a,>int> b,>int> c)> {> >cout<'sum ='<<(a+b+c); } main() { add(10,2); add(5,6,4); return 0; }>

>

>

C++


екземпляр java



#include> using> namespace> std;> void> add(>int> a,>double> b)> {> >cout<<>'sum ='><<(a+b);> }> void> add(>double> a,>int> b)> {> >cout<'sum ='<<(a+b); } main() { add(10,2.5); add(5.5,6); return 0; }>

>

>

Як працює перевантаження функцій?

  • Точний збіг :- (Назва функції та параметр)
  • Якщо a не знайдено точної відповідності:

->Char, Unsigned char і short підвищуються до int.

->Float підвищено до подвійного

  • Якщо відповідності не знайдено :

->C++ намагається знайти збіг за допомогою стандартного перетворення.

  • ІНША ПОМИЛКА
  1. Перевантаження функції та тип повернення
  2. Функції, які не можна перевантажувати в C++
  3. Перевантаження функції та ключове слово const
  4. Перевантаження функцій проти перевизначення функцій у C++

Останні статті про перевантаження функцій у C++