Miért nem működik ez a programrész úgy, ahogy szeretném? (c++)
Figyelt kérdés
Van egy xy objektumom a myClass osztályban.
Van egy függvényem:
myClass myFunction(myClass myObject)
{
myObject.setX(25);
return myObject;
}
Ahol a setX az osztályon belül az x=10 privát változó értékét írja át.
Amikor meghívom a main()-ben, pl:
cout << "return value: " << myFunction(xy).getX() << endl;
Akkor nem változik az érték 25-re, hanem a 10-et adja vissza, mert a függvény létrehozásánál is meghívódik a copy constructor, majd a return utasításnál is valamiért.
Ezt csak úgy tudtam kiküszöbölni, hogy függvényen belül átadtam a myObject objektumot egy új objektumnak:
myClass myFunction(myClass myObject)
{
myObject2=myObject
myObject2.setX(25);
return myObject2;
}
Megköszönném ha valaki elmagyarázni :)
2017. jan. 27. 16:27
1/2 A kérdező kommentje:
Kihagytam, hogy myClass myObject2=myObject;
2017. jan. 27. 16:36
2/2 anonim válasza:
Teljes kódot rakj már be ha lehet.
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!