Ez miért nem jó? : *DogOne = *DogOne;
Hibaüzenet:
assignment to itself.
Mi lehet a baj?





az, hogy saját magával akarod egyenlővé tenni, ami teljesen felesleges.
Ha *proba = 4, akkor *proba = *proba ugyan úgy 4 lesz. Nem tudom érted-e, de nem lesz semmi értelme.
Igen tudom de miért nem engedi a fordító?Attól még nem rossz a kód.
Az operator= épp erre az esetretartalmazza ezt a kódsort:
if this == &obj
return *this;










Te nem jól írtad. A == operátor van túlterhelve, nem =.
Elméletileg így kéne kinéznie:
*DogOne == *DogOne;
Figyu ha megvan írva az operator=() akkor ennek jónak kéne lennie:
obj1 = obj1
majd az operator= ben megvizsgálódik,hogy a bal oldalon levő obj címe egyenlő e a jobb oldaléval ha igen nem történik értékfelülírás.
De nem fordul le a program de csak akkor nem fordul le amikor ugyanazt az objektumot akarom ugyanahhoz rendelni.
A 125 sorban rossz.
DogTwo objektumot hozzászeretném rendelni DogTwo hoz.
DogTwo = DogTwo; így.
De itt csak simán hibaüzenetet kapok még csak meg sem hívódik az operator=()










A kód alapján egyértelmű a hiba.
A *DogOne -nek eleve nincs értelme. Valaki írta "*DogOne == *DogOne" így nyilván ezt sem fogadná el a fordító.
A *DogOne azt jelenti hogy a DogOne mutató által mutatott objektum, de DogOne nem mutató. DogOne viszont mutató (de ez konstans mutató csak hogy ne legyen olyan egyszerű.)





"Nalátod. Nem hibaüzenet, hanem WARNING. "
Ha megnézted volna a kódot ott a *DogOne = *DogOne csillagok nékül van, az meg lehetetlen hogy lefordítsa a fordító.
További kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!