PDA

Visualizza la versione completa : [c++]dubbio copy constructor


giuseppe500
01-02-2010, 11:03
Ciao.
Ho un dubbio sul copy constructor:
Quali sono gli usi del copy constructor?
è usato solamente per controllare manualmente tramite codice la copia di un oggetto?
Di default il compilatore crea un suo copy constructor se non ne creo io?
Grazie.

c_junior
01-02-2010, 11:13
il costruttore di copia dovrebbe essere invocato quando avviene un passaggio parametri per valori e quando viene restituito un "valore" nel return:

per esempio tu hai una classe persona:


//passaggio parametri per valori
int dimmi_eta(PERSONA p1);
//passaggio parametri per riferimento
//in questo caso non viene invocato il costruttore di copia
int dimmi_eta(PERSONA &p1);


di default il compilatore creare un costruttore di copia che altro non fa che creare una copia dell'oggetto in questione. Tuttavia in alcuni casi con l'allocazione dinamica della memoria ed i puntatori è utile ridefinire il costruttore di copia in quanto ci potrebbero essere dei problemi nel passaggio per valori. In pratica tu pensi di aver passato una copia dell'oggetto in questione ma in realtà passi un riferimento all'oggetto.

shodan
01-02-2010, 12:35
Originariamente inviato da giuseppe500
Ho un dubbio sul copy constructor:
Quali sono gli usi del copy constructor?
è usato solamente per controllare manualmente tramite codice la copia di un oggetto?
Di default il compilatore crea un suo copy constructor se non ne creo io?
Grazie.
Francamente ritenevo che questi dubbi non ci fossero più visto che usi il C++ da un bel po'.

Loading