Přetěžování: Porovnání verzí

Smazaný obsah Přidaný obsah
Addbot (diskuse | příspěvky)
m Bot: Odstranění 11 odkazů interwiki, které jsou nyní dostupné na Wikidatech (d:q1201848)
Formulace úvodu
Řádek 1:
'''Přetížení funkce''' ({{Vjazyce|en}} {{Cizojazyčně|en|'''function overloading'''}}) je v [[Informatika|informatice]] taková metoda zápisu [[Zdrojový kód|zdrojového kódu]] programu, kdy je deklarovánomožné definovat více [[Podprogram|funkcí]] pod([[Metoda stejným(objektově názvem,orientované přičemžprogramování)|metod]]) se navzájemstejným lišínázvem ves struktuře seznamu parametrů (počet, datový typ). Při volání funkcerůznými [[překladačimplementace]] analyzuje parametry a podle toho určí odpovídající funkcimi. PřetíženíVolání sepřetížené týkáfunkce itak návratovéodpovídá hodnotykontextu, překladačze analyzujekterého typbyla požadovanévolána, návratovétakže hodnotypodle nakontextu levé straně přiřazovacího operátoru '''=''' a podle tohovolání vybereproveden příslušnourůzný funkcikód.
 
Rozhodnutí o tom, která z dostupných funkcí bude volána, provádí [[překladač]] podle toho, s jakými [[Parametr funkce|parametry]] je funkce volána (rozhoduje počet a [[datový typ]] předaných parametrů). Přetížení se týká i návratové hodnoty, kdy překladač podle typu požadované návratové hodnoty na levé straně přiřazovacího operátoru (obvykle znak <code>=</code>) vybere odpovídající funkci.
Přetěžování funkcí je v praxi často používané jak ve strukturovaném, tak i v [[Objektově orientované programování|objektově orientovaném programování]]. Velice výhodné může být přetížení konstruktorů.<ref name="PROKOP">{{Citace elektronické monografie | url = http://ncbr.chemi.muni.cz/~martinp/C3220/PCChem_C3.pdf | autor = PROKOP Martin | titul = Pokročilé programování v jazyce C pro chemiky - Reference, přetížení funkcí, operátory | rok = 2011 | vydavatel = NCBR | místo = Brno | datum přístupu = 2011-05-10}}</ref>
 
V přetěžování funkcí je rozhodnutí o volané funkci provedeno již při překladu (tj. staticky). Nezaměňujte proto přetěžování funkcí s [[Polymorfismus (programování)|polymorfismem]], kde se o volání vhodné funkce rozhoduje až za běhu programu pomocí [[Virtuální funkce|virtuálních funkcí]] (tj. dynamicky).
 
== Použití ==
Přetěžování funkcí je v praxi často používané jak ve [[Strukturované programování|strukturovaném programování]], tak i v [[Objektově orientované programování|objektově orientovaném programování]]., kde Veliceje výhodnéčasto můžepoužíváno býtpro přetížení konstruktorů.<ref name="PROKOP">{{Citace elektronické monografie | url = http://ncbr.chemi.muni.cz/~martinp/C3220/PCChem_C3.pdf | autor = PROKOP Martin | titul = Pokročilé programování v jazyce C pro chemiky - Reference, přetížení funkcí, operátory | rok = 2011 | vydavatel = NCBR | místo = Brno | datum přístupu = 2011-05-10}}</ref>
 
Příklad přetížení funkce v programovacím jazyce C (různé struktury seznamu parametrů):