C ++

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

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

C ++ - це гнучка мова програмування загального призначення. Цю мову програмування спочатку створив Б'ярн Страуструп, датський інформатик, ще в 1985 році. С ++ підтримує поліморфізм, успадкування тощо. Ця стаття висвітлює перевантаження функцій для досягнення поліморфізму часу компіляції в мові програмування С ++.

Що таке функція?

Функція - це не що інше, як конкретний шматок коду, який виконує конкретне завдання на основі наданих входів, і вона повертає користувачеві запитувані результати у вигляді виводу. Функції використовуються для усунення повторюваного коду у великих кодових базах.

Після визначення функції ви можете повторно використовувати її пізніше, або в тій самій програмі, або в іншій програмі.

Синтаксис функції

Функція в C ++ має такий синтаксис:

returnType functionName (список_параметрів)

..
..
return return_value;

Функція returnType, parameter_list та return не є обов’язковими. Функція в C ++ може повернути максимум одне значення. Якщо функція не повертає жодного значення, returnType слід визначити як void.

Що таке перевантаження функції?

У C ++ декілька визначень функцій можуть мати одне і те ж ім'я функції, але з різними параметрами. Це називається перевантаженням функції. За допомогою функції перевантаження функції можна досягти поліморфізму під час компіляції в C++.

Функції можна перевантажити наступними способами:

  1. Кількість параметрів може бути різною
  2. Тип даних параметрів може бути різним
  3. Послідовність параметрів може бути різною

Однак повернене значення не враховується при перевантаженні функції. 

Наступні функції перевантажені:

  1. додавання int (int a, int b)
  2. додавання поплавка (float f, gloat g)
  3. додавання поплавків (float f, int i)
  4. додавання плаваючого (int i, float f)
  5. додавання int (int a, int b, int c)
  6. додавання поплавка (float f, float g, float h)

Як бачите, за допомогою функції перевантаження функції в C ++ може бути кілька визначень / функціональних можливостей з однаковим іменем функції та в одній області дії.

Без функції перевантаження функції вам потрібно буде написати окрему функцію [наприклад, add_1 (), add_2 () тощо] для кожного варіанта. Наприклад, можливо, вам доведеться написати add_1 (), щоб додати два цілих числа, add_2 (), щоб додати два плаваючі числа тощо. Однак, як ви можете бачити вище, функцію перевантаження функції можна використовувати для визначення декількох варіацій функції “addition ()”, зберігаючи при цьому те саме ім’я функції.

Наступні функції не вважаються перевантаженими, оскільки єдина різниця між цими двома - це тип повернення (тип повернення не враховується при перевантаженні функції в C ++):

  1. додавання int (int a, int b)
  2. додавання плаваючого числа (int a, int b)

Приклади

Тепер, коли ви розумієте концепцію перевантаження функцій, ми пройдемо кілька робочих прикладних програм, щоб зрозуміти цю концепцію чіткіше. Ми розглянемо такі приклади:

  1. Приклад 1: Проста функція
  2. Приклад 2: Проста функція додавання
  3. Приклад 3: Перевантаження функції (1)
  4. Приклад 4: Перевантаження функції (2)
  5. Приклад 5: Перевантаження функції (3)

Перші два приклади пояснюють, як працюють звичайні функції в C ++, тоді як останні три приклади демонструють функцію перевантаження функції в C++.

Приклад 1: Проста функція

У цьому прикладі ми продемонструємо, як просту функцію можна визначити та викликати в C++. Ми визначимо клас під назвою “Display” та загальнодоступну функцію, що називається “display ().”З функції“ main () ”ми будемо викликати функцію“ display () ”за допомогою об’єкта класу“ Display ”(d).

#включати
використання простору імен std;
клас Дисплей

публічний:
відображення порожнечі ()

кут << "Hello World!" << endl;

;
int main ()

Дисплей d;
d.display ();
повернути 0;

Приклад 2: Проста функція додавання

У цьому прикладі ми продемонструємо, як визначити просту функцію “складання ()” в C++. Ми визначимо клас під назвою “DemoAdd” та публічну функцію, що називається “add ().”З функції“ main () ”ми будемо викликати функцію“ add () ”за допомогою об’єкта класу“ DemoAdd ”(d).

У цьому прикладі поточна реалізація функції “складання ()” приймає лише два цілочисельні параметри. Це означає, що поточна функція “складання ()” може додавати лише два цілих числа.

Щоб додати три цілих числа замість двох, можна визначити функцію з іншою назвою, наприклад, „додавання_1 ()”. У C ++ функція може бути перевантажена, що означає, що можна визначити інше визначення функції “складання ()” для додавання трьох цілих чисел і збереження того самого імені.e., “Додавання ().”У наступному прикладі ми розглянемо, як перевантажити функцію“ add () ”.

#включати
використання простору імен std;
клас DemoAdd

публічний:
додавання int (int a, int b)

int результат;
результат = a + b;
повернути результат;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, res;
res = d.додавання (i1, i2);
кут << "Result = " << res << endl;
повернути 0;

Приклад 3: Перевантаження функції (1)

У попередньому прикладі ми визначили функцію “складання ()” для додавання двох цілих чисел і повернення обчисленого результату. Тепер, у цьому прикладі, ми перевантажимо функцію “add ()”, щоб додати три цілі числа. Отже, ми зможемо викликати функцію “складання ()” з двома цілими аргументами, а також трьома цілими аргументами.

Без функції перевантаження функції нам довелося б написати іншу функцію з іншою назвою.

#включати
використання простору імен std;
клас DemoAdd

публічний:
// Перше визначення функції додавання ()
додавання int (int a, int b)

int результат;
результат = a + b;
повернути результат;

// Перевантажена версія функції додавання ()
додавання int (int a, int b, int c)

int результат;
результат = a + b + c;
повернути результат;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.додавання (i1, i2); // додавання () з 2 параметрами
res2 = d.додавання (i1, i2, i3); // додавання () з 3 параметрами
кут << "Result = " << res1 << endl;
кут << "Result = " << res2 << endl;
повернути 0;

Приклад 4: Перевантаження функції (2)

У попередніх розділах цієї статті ви дізналися, що перевантаження функції можна виконати на основі відмінностей у типі параметрів. Тут ми перевантажили функцію “add ()” на основі типу даних параметра. У першій версії функції додавання ми додамо дві змінні цілочисельного типу; а у другій версії ми додамо дві змінні типу float.

#включати
використання простору імен std;
клас DemoAdd

публічний:
// Перше визначення додавання ()
додавання int (int a, int b)

int результат;
результат = a + b;
повернути результат;

// Перевантажене визначення функції
додавання поплавка (float f, float g)

плаваючий результат;
результат = f + g;
повернути результат;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, res1;
поплавок f1 = 10.5, f2 = 20.7, res2;
res1 = d.додавання (i1, i2); // буде викликано додавання (int a, int b)
res2 = d.додавання (f1, f2); // буде викликано додавання (float f, flat g)
кут << "Result = " << res1 << endl;
кут << "Result = " << res2 << endl;
повернути 0;

Приклад 5: Перевантаження функції (3)

У цьому прикладі функція “add ()” перевантажена на основі відмінностей у послідовності списку параметрів. Це ще один спосіб перевантажити функцію в C++.

#включати
використання простору імен std;
клас DemoAdd

публічний:
// Перше визначення функції додавання () функції
додавання плаваючого числа (int a, float b)

плаваючий результат;
результат = (плаваючий) a + b;
повернути результат;

// Перевантажене визначення функції додавання () функції
додавання плаваючого числа (float a, int b)

плаваючий результат;
результат = a + (плаваючий) b;
повернути результат;

;
int main ()

DemoAdd d;
int i1 = 10;
поплавок f1 = 10.5, res1, res2;
res1 = d.додавання (i1, f1); // буде викликано додавання (int a, float b)
res2 = d.додавання (f1, i1); // буде викликано додавання (float a, int b)
кут << "Result = " << res1 << endl;
кут << "Result = " << res2 << endl;
повернути 0;

Висновок

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

Як використовувати Xdotool для стимулювання клацань миші та натискань клавіш у Linux
Xdotool - це безкоштовний інструмент командного рядка з відкритим кодом для імітації клацань миші та натискань клавіш. У цій статті буде розглянуто ко...
Топ 5 ергономічних продуктів для комп'ютерної миші для Linux
Чи викликає тривале використання комп’ютера біль у зап’ясті або пальцях? Ви страждаєте від ригідності суглобів і вам постійно доводиться трясти руки? ...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...