Skip to main content

Co je přetížení funkce?

Přetížení funkce je funkce mnoha programovacích jazyků, kde lze vytvořit více metod se stejným názvem, ale s různými vstupními parametry nebo typy návratu.Toto je běžný rys v objektově orientovaném programování;Zejména konstruktéry mohou mít několik různých přetížených variant.Přetížení funkcí je v podstatě užitečné, když dvě funkce dělají velmi podobné věci a mohou k tomu vzít více typů vstupů.Konstruktory mohou být snadno přetíženy, protože nemají žádný specifikovaný explicitní typ návratnosti, takže jednoduše změna vstupních parametrů konstruktoru by byla platná přetížení.Například lze zvážit funkci s názvem Add, která zabírá jako vstup dvě celá čísla.Účel této funkce je docela zřejmý;Účelem je najít součet dvou celých čísel.

Pokud by někdo chtěl najít součet dvou plováků nebo desetinných čísel, tato funkce by však nebyla použitelná.Takže by byla nezbytná druhá přetížená funkce, definována jako funkce s názvem Add, která zabírá jako vstup dva plováky.Funkce dělají v podstatě totéž, ale přetížení funkce je nutné, protože jejich vstupy jsou výrazně odlišné.

druhým způsobem, kterým lze přetížit funkci, je změnit jak své vstupní parametry, tak jeho návratový typ.Pomocí předchozího příkladu lze zvážit, zda obě přetížené funkce ADD měly typ návratu neplatného;To znamená, že nic nevrátili.To by stále bylo platné přetížení funkce, ale typy návratnosti obou metod lze také změnit.V dalším platném příkladu přetížení by funkce ADD, která vezme dvě celé čísla, mohla vrátit celé číslo celého čísla a funkce ADD, která vezme dvě desetinná čísla, by mohla vrátit tento součet desetinných čísel., není považován za platné přetížení funkce.Změna pouze typu návratu funkce vede k nejednoznačnosti, protože není z hlediska metody podpis, který je požadován typ návratu.Parametry lze také definovat nejednoznačně, takže je velmi důležité, aby byly přetížené funkce správně nazývány.Například, pokud má člověk přetíženou funkci, která má celé číslo jako vstupní parametr, a druhé, které má desetinné číslo jako parametr, bylo by pro někoho velmi snadné volat funkci desetinného čísla namísto funkce celého čísla funkcenebo naopak, protože mají stejné jméno.Pokud je to možné, je třeba se zabránit nejasným parametrům, jako jsou tyto, a pokud to nemohou být, je třeba věnovat velkou pozornost, aby se zajistilo, že správná přetížená funkce bude volána ve správných dobách.

Přetížení funkce je užitečné pro vytváření souvisejících funkcí s různými typy vstupů je, a dává kódu velkou flexibilitu.Jedním z posledních úvah o přetížených funkcích je to, že je nezbytné adekvátní komentáře.I když by to mohlo být jasné, podle různých vstupních parametrů, jaká verze přetížené funkce je pro konkrétní situaci v pořádku, nemusí být vždy jasné, co tato funkce dělá jinak od ostatních přetížených partnerů.