Перевантаження функції, перевантаження процедури або ж перевантаження методу (англ. function overloading or method overloading) — в програмуванні один із засобів реалізації поліморфізму (ad hoc поліморфізм), що полягає в можливості створювати кілька реалізацій функції (методу) із тим же ім'ям проте з різною сигнатурою — з різною кількістю параметрів або з різним типом параметрів. Дана можливість з'явилась ще в процедурних мовах програмування, з появою ж об'єктно-орієнтованого підходу можливість поширилась на методи (функції-члени) одного і того ж класу, зокрема і на конструктори класу.
Для прикладу, 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); }
В вище наведеному прикладі, об'єм підрахований методами з різним набором аргументів, буде вибирати функцію для підрахунку об'єму відповідної фігури.
Див. також
Джерела
- . Архів оригіналу за 16 січня 2013. Процитовано 28 грудня 2012.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Perevantazhennya funkciyi perevantazhennya proceduri abo zh perevantazhennya metodu angl function overloading or method overloading v programuvanni odin iz zasobiv realizaciyi polimorfizmu ad hoc polimorfizm sho polyagaye v mozhlivosti stvoryuvati kilka realizacij funkciyi metodu iz tim zhe im yam prote z riznoyu signaturoyu z riznoyu kilkistyu parametriv abo z riznim tipom parametriv Dana mozhlivist z yavilas she v procedurnih movah programuvannya z poyavoyu zh ob yektno oriyentovanogo pidhodu mozhlivist poshirilas na metodi funkciyi chleni odnogo i togo zh klasu zokrema i na konstruktori klasu Dlya prikladu doTask ta doTask object O ce dva rizni perevantazheni metodi Pershij metod ne maye parametriv a drugij maye tu zh nazvu prote mozhe prijmati yak parametr pevnij ob yekt Pravila perevantazhennya funkcijPerevantazheni funkciyi mayut mati riznu kilkist parametriv abo tipi danih Mati odnakove im ya funkciyi yake bude vikoristovuvatis dlya vikliku vsih yiyi variantiv Perevantazhennya funkcij vidnositsya do klasifikaciyi statichnogo polimorfizmu v yakomu bude viklikano najbilsh pidhodyashu funkciyu tobto funkciya viznachayetsya na osnovi spisku yiyi argument Perevantazhennya funkcij chasto pov yazane z statichno tipizovanimi movami programuvannya yaki potrebuyut perevirki tipiv pri vikliku funkcij Perevantazhuyuchi metod stvoryuyetsya mnozhina riznih metodiv yaki mayut odne i te same im ya Rishennya pro te yaka funkciya bude viklikana vidbuvayetsya u Perevantazhennya metodiv ne slid plutati z polimorfizmom pri yakomu potribnij metod obirayetsya pid chas vikonannya za dopomogoyu virtualnih metodiv zamist statichnih Priklad perevantazhennya funkcij u c include lt iostream gt Ob yem kuba int volume int s return s s s Ob yem cilindra double volume double r int h return 3 14 r r static cast lt double gt h Ob yem kuboyida long volume long l int b int h return l b h int main std cout lt lt volume 10 std cout lt lt volume 2 5 8 std cout lt lt volume 100 75 15 V vishe navedenomu prikladi ob yem pidrahovanij metodami z riznim naborom argumentiv bude vibirati funkciyu dlya pidrahunku ob yemu vidpovidnoyi figuri Div takozhPerevantazhennya operatoriv Zamishennya metoduDzherela Arhiv originalu za 16 sichnya 2013 Procitovano 28 grudnya 2012