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í specifikovaný explicitní typ návratnosti, takže jednoduše změna vstupních parametrů konstruktoru by byla platná přetížení.

Prvním způsobem, kterým lze funkce přetížit, je změnou vstupních parametrů. Například lze zvážit funkci nazvanou „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 někdo chtěl najít součet dvou plováků nebo desetinných čísel, však tato funkceion by se nelze použít. Byla by tedy nezbytná druhá přetížená funkce, definována jako funkce nazvaná „Přidat“, která jako vstup dva plováky bere. 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, jakým lze funkce přetížit, je změnit vstupní parametry i typ návratu. Pomocí předchozího příkladu lze zvážit, zda obě přetížené funkce „Přidat“ měly typ návratnosti prázdných; 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 celou součet čísel a funkce „Add“, která vezme dvě desetinná čísla, by mohla vrátit tento součet desetinných čísel.

Jednoduše změna typu návratu oF funkce však není považována za platné přetížení funkce. Změna pouze typu návratu funkce vede k nejednoznačnosti, protože není z hlediska podpisu metody jasný, 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 svůj vstupní parametr, a druhé, které má desetinné číslo jako parametr, bylo by pro někoho velmi snadné volat funkci desetinné číslo místo celé funkce celého čísla nebo naopak, protože má 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ů a dává kódu velkou flexibilitu. Jedna poslední úvahaU přetížených funkcí je to, že je nezbytné adekvátní komentáře. I když by to mohlo být jasné, podle různých vstupních parametrů, která 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ů.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?