Kezdőoldal » Számítástechnika » Programozás » Ez a példa hibás? Vagy itt...

Ez a példa hibás? Vagy itt miért hívja meg a copy-constructort (c++)?

Figyelt kérdés

[link]


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:
100%

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);

2017. aug. 26. 11:12
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

#1 +1

A kulcsszó az érték szerinti (pass by value) paraméterátadás.

2017. aug. 26. 13:45
Hasznos számodra ez a válasz?
 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!