Túlterhelés - üzemeltető c (videó), purecodecpp

Ne beszéljünk a nyilvánvaló - folytassa megvizsgálja a legtöbb torlódás. On line 15 látjuk a prototípus egy osztály módszer túlterhelés. void operátor + (char *); Ez a módszer, hogy a + operátor működik, ahogy szeretnénk (ahogy lentebb határozzuk meg). Túlterhelni bármely üzemeltető szeretné használni a kulcsszó operátor. Ebben az esetben az eljárás nem ad vissza értéket, így érvénytelen. További kulcsszó üzemeltető és a kezelő is. + Ez a módszer egy pointert a húr.

A fő funkciója, meghatároztuk véletlenszerűen 4 sor. Megjeleníti azokat a képernyőn (vonalak 39-42). Az alábbiakban a 44. sor, egy tárgy nyilvánítják Joke. Abban az időben a teremtés, az osztály kivitelező. tisztít osztály str eleme a „szemét”, és készen áll, hogy rögzítse vonalak. Továbbra is elvégezni az egyszerű műveleteket (vonalak 46-49) - a túlterhelt + írd le az összes sort egy (str) a megfelelő sorrendben.

Túlterhelés - üzemeltető c (videó), purecodecpp

Minden kiderült. Mégis, ahogy látható az eredmény, a + operátor betölteni a megfelelő számszerű adatokat. Ezért is biztonságosan használható aritmetikai műveletek a kódot - a fordító akkor „megérteni”. Egy másik pont - a túlterhelés üzemben működik, csak az osztályon belül, amelyre a megadott. Ha meg egy másik osztály (Overload2 például), de nem nyomják neki az üzemeltető, a kísérlet, hogy a + felvételhez valahova vezet hiba.

Számos kivételek C ++ - nem minden operátorok túlterhelt. Itt van egy lista:

Túlterhelés - üzemeltető c (videó), purecodecpp

És még egy kis elmélet:

- túlterhelés üzemeltetői nem tudja megváltoztatni a kiemelt és műveletek sorrendjét;

- nincs lehetősége a torlódás, új szimbólumok műveletek;

- bináris operátorok nem lehet használni, hogy felülbírálja a egyváltozós függvény, és fordítva - nem egyoperandusú operátor felülbíráló művelet.

Azt tervezem, hogy a jövőben, hogy írjon egy cikket a kezelő túlterhelés, ahol a példák akarom mutatni, hogyan kell túl a ++ növekmény - csökkentés, == egyenlőség = rendelhet új és törölni. Ha nem tudtam elfelejteni :)

Annak érdekében, hogy a honlapunkon - kattints az érme doboz és válassza tetszőleges módon.

>> Például, ha egy akció meg kell ismételni a kódot többször, és csak fájdalmasan tartós használatra erre a különleges funkció - túlterheli az üzemeltető erre.

Általában igaz, de a túlterhelés - egy elegáns módja annak, hogy lőni magát a láb (és lő valamit valakinek). Nagyon veszélyes dolog. Ez mind jobb érthetősége érdekében a kódot, és mindent elrontani.

Abban Myers voltak szabályok a témában (ha azok nem felelnek meg - a pokolban lesz kénytelen fenntartani a kódot minden 7 kör). Például:
- értékadó operátor vissza kell hivatkozni, hogy ez *;
- az értékadó operátor ellenőrizni samoprisvaivaniya;
- van tselyyel mintegy túlterhelése az új és törölhet, de IMHO 99% -át ezek a halálesetek egyszerűen nem kell megérinteni e szereplők;
- állapítsa funkciók, amelyek nem tagjai, amikor egy típuskonverziója alkalmazni kell az összes paramétert.
Nos, számos más szabályok (több könyvet).
I-hez kell figyelni, hogy az utolsó szabály a listában. Te már leírták a szereplő, aki dolgozik

Joke + str1;
De ez nem működik
str1 + Joke;

De jó lenne, ha az üzemeltető működne mindkét irányban. Ez elég ahhoz, hogy nem tagja egy osztály (normál működés). Ez nem nehéz? )

Kapcsolódó cikkek