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

Перевантаження функції, перевантаження процедури або ж перевантаження методу (англ. function overloading or method overloading) — в програмуванні один із засобів реалізації поліморфізму (ad hoc поліморфізм), що полягає в можливості створювати кілька реалізацій функції (методу) із тим же ім'ям проте з різною сигнатурою — з різною кількістю параметрів або з різним типом параметрів[1]. Дана можливість з'явилась ще в процедурних мовах програмування, з появою ж об'єктно-орієнтованого підходу можливість поширилась на методи (функції-члени) одного і того ж класу, зокрема і на конструктори класу.

Для прикладу, doTask() та doTask(object O) — це два різні перевантажені методи. Перший метод не має параметрів, а другий має ту ж назву, проте може приймати як параметр певний об'єкт.

Правила перевантаження функцій

ред.
  • Перевантажені функції мають мати різну кількість параметрів або типи даних.
  • Мати однакове ім'я функції, яке буде використовуватись для виклику всіх її варіантів.

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

Перевантаження методів не слід плутати з поліморфізмом, при якому потрібний метод обирається під час виконання, за допомогою віртуальних методів,замість статичних.

Приклад: перевантаження функцій у c++

#include <iostream>// Об'єм кубаint volume(int s){    return s*s*s;}// Об'єм циліндраdouble volume(double r, int h){    return 3.14*r*r*static_cast<double>(h);}// Об'єм кубоїдаlong volume(long l, int b, int h){    return l*b*h;}int main(){    std::cout << volume(10);    std::cout << volume(2.5, 8);    std::cout << volume(100, 75, 15);}

В вище наведеному прикладі, об'єм підрахований методами з різним набором аргументів, буде вибирати функцію для підрахунку об'єму відповідної фігури.

Див. також

ред.

Джерела

ред.
  1. Overloading. Definition. Архів оригіналу за 16 січня 2013. Процитовано 28 грудня 2012.
🔥 Top keywords: Головна сторінкаЧемпіонат Європи з футболу 2024Спеціальна:ПошукКонституція УкраїниТимошенко Кирило ВладленовичТищенко Микола МиколайовичДень Конституції УкраїниYouTubeСодоль Юрій ІвановичЧемпіонат світу з футболу 2026 (кваліфікаційний раунд)БолівіяГнатов Андрій ВікторовичУкраїнаЗбірна України з футболуArmement Air-Sol ModulaireЧемпіонат світу з футболу 2026Прокопенко Денис ГеннадійовичДрапатий Михайло ВасильовичТериторіальний центр комплектування та соціальної підтримкиГринцевич Назарій АндрійовичРадіо «Свобода»Чемпіонат Європи з футболуБріджертониБалога Андрій ВікторовичВерес Кирило КириловичВійськові звання УкраїниБалога Віктор ІвановичШевченко Андрій МиколайовичЄрмак Андрій БорисовичПівнічна КореяВійськово-облікова спеціальністьСпеціальна:Нові редагуванняЧемпіонат Європи з футболу 2020FacebookТимчик Олександр Васильович27 червняХерсонес ТаврійськийДень рибалкиВсесвітній день рибальства