Ez a példa hibás? Vagy itt miért hívja meg a copy-constructort (c++)?
Figyelt kérdés
azt írja,hogy ha fordítod és futtatod a kódot,akkor ezt írja ki:
Normal constructor allocating ptr
Copy constructor allocating ptr.
Length of line : 10
Freeing memory!
Freeing memory!
De itt miért hívná meg a copy-constructort?
2017. aug. 26. 10:53
1/3 sharkxxx válasza:
Azért mert a display() funkció így van deklarálva:
void display(Line obj)
Ebbe a deklarációban a "Line obj" azt jelenti, hogy egy új lokális objektum lesz létrehozva. Annak az új lokális objektumnak lesz értékül adva a fukció paramétere.
Szóval, ha kiadod ezt a parancsot:
display(line);
akkor az olyan, mintha a funkció belsejében ez a parancs hajtódna végre:
Line obj(line);
2/3 anonim válasza:
#1 +1
A kulcsszó az érték szerinti (pass by value) paraméterátadás.
3/3 A kérdező kommentje:
Így már világos, köszönöm
2017. aug. 28. 10:23
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!