Kezdőoldal » Számítástechnika » Programozás » A forráskódban az obj1 nek a...

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=?

Figyelt kérdés

[link]

Ez hihetetlen!


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.
2012. szept. 20. 13:33
Hasznos számodra ez a válasz?
 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.

2012. szept. 20. 14:45
Hasznos számodra ez a válasz?

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!