A forráskódban az obj1 nek a második ki íratáskor miért lesz 8 az értéke mikor csak az obj2 hívtam meg az operator=?
2012. szept. 20. 11:54
1/3 A kérdező kommentje:
Már értem.
Az a baj,hogy az alapértelmezett operator= fut le.
Így volna helyes a pédám.
obj1 = &obj2;
2012. szept. 20. 12:41
2/3 iostream válasza:
Teszem hozzá, rém buta dolog úgy megadni az operator=-t, ahogy te tetted. Az operátortúlterhelésnek a templateken kívül az az értelme, hogy intuitív kezelést adjon egy típusnak. Ha nem intuitív, hogy hogy kéne működnie az operator=-nek, akkor inkább írj egy más nevű függvényt.
3/3 _Jessy_ válasza:
Így volna helyes a pédám.
obj1 = &obj2;
Úgy sem volna helyes, mert az az operátor nincs definiálva. Egyébként azért viselkedik így, mert az = operátorod meghívásánál az i_proba tagváltozókat teszi egyenlővé, így mindkét objektumnál az a tagváltozó ugyanarra a memóriacímre fog mutatni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!