Co je přetížení operátora?
Přetížení operátora je funkce jazyka počítačového programování, která umožňuje programátorovi přepsat výchozí operátor. Když je funkce operátora přetížena, může být deklarována pomocí vlastních argumentů, které jsou odlišné typy dat, než co byl operátor ve výchozím nastavení schopen zpracovat. Nové parametry mohou být primitivní nebo uživatelsky definované typy. V těle převažující funkce může programátor podle potřeby manipulovat s hodnotami parametrů. Použitím přetížení operátora může programátor vytvořit intuitivní zkratky pro manipulaci s datovými typy definovaných uživatelem nebo upravit, jak se vyřizují výchozí datové typy. Provozovatelé, včetně symbolu přidání, lze přepsat tak, že pokud jsou používány jako binární operátory mezi dvěma vlastními datovými typy, vrátí uživatele DEpokuta. Stejně tak by mohl být přepsán operátor Unary, stejně jako operátor přírůstku, aby se zvýšila vnitřní hodnota v rámci uživatele definovaného typu.
Jakmile je operátor přetížen, musí kompilátor rozhodnout o tom, co dělat, když narazí na přetíženého operátora. Kompilátor rozhoduje o správném opatření, která se má podniknout na základě toho, jaké typy dat se používají jako operandy nebo ve spojení s operátorem. Pokud jsou operandy, které jsou hodnotami parametrů pro funkci operátora, uživatelsky definované datové typy, kompilátor si vybere přetíženou funkci, která má parametry, které odpovídají použitým operandům.
Počítačové jazyky se liší v tom, jak umožňují tento typ polymorfismu ad-hoc. Různé jazyky mohou umožnit vytvoření nových vlastních operátorů, přetížení všech nebo některých jeho operátorů nebo nemusí umožnit přetížení operátora vůbec. C ++, C#, PHP a PerlVšichni umožňují přetížení některých jejich operátorů. Přetížení operátora není povoleno v C, Java a JavaScriptu.
Přetížení operátorů a přetížení funkcí obecně byly předmětem nějaké debaty. Někteří tvrdí, že dávat programátorovi svobodu změny způsobu, jakým se operátor chová, by mohlo představit potenciál pro vytváření neúmyslného chyb jiných programátorů, kteří používají přizpůsobený kód. Opakující pohled navrhuje, aby umožnění přetížení operátora dává programátorům schopnost vytvářet intuitivní a stručný kód, který bude snáze srozumitelný, méně vyrábět a snížit chyby.