operatory_vc++

Operátory v C++

Kdyby operátor (např.: “+”) nebyl přetížen, nebude sčítat – neví totiž jak, aby fungoval musím ho přetížit.

Když si vezmu příklad s komplexníma číslama a vytvořím si v hlavičce třídu Complex a dám do ní vlastnosti takle:

Můžu potom vytvořit konstruktor (místo dva – s a bez vstupních parametrů jsem to napsal tak, že vstupní parametr je nadefinovaná nula a jen když do konstruktoru jde vstupní hodnota, tak se přepíše. A metodu na přetížení operátoru +.

Všimněte si, že jsem tam dal i metodu na přetížení “+=”. Ta ale nemá návratovou hodnotu – protože výsledek přičtu ke vstupní hodnotě.

Tady je definice konstruktoru, který je definován výše:

Tady pak definice metody pro přetížení opetárotu “+”. Výsledkem operátoru plus je nové komplexní číslo.

a tady definice metody bez návratové hodnoty pro operátor “+=”. Plus rovná se (přičítání), nevracím novou hodnotu ale upravím vstupní hodnotu.

Kdyby jste chtěli přetipovat celé číslo na double. Dá se tak automaticky pomocí metody double(). Všimněte si, že návratová metoda je definovaná pomocí toho double() a nedefinuje se stupeň přístupu (public, private…)

 Instanční nebo statická. Naše příklady jsou v instančních metodách, poznáte to tak, že se pracuje s “this”. Přetížení instanční metody -> posílám tam jen jeden vstupní parametr, druhý si beru pomocí toho this. Kdyby se dělala staticky, musí tam být oba vstupní parametry a this nemůžu využít.

V C++ existují i funkce nejsou vázány na třídu, pochází z jazyka C, kdy nebylo objektové programování.

stahnout_zdrojak
Klikni pro zdroják

Komentáře

komentářů

Autor

Jan Ružička

Pracuji v marketingu, dělám a starám se o weby, SEO, vymýšlím reklamy a mnoho dalšího. Více informací o mně naleznete na mém profilu na Linkedin.com.