PDA

View Full Version : Costruttore di Copia


Kleidemos
19-03-2003, 18:40
Quali sono i vantaggi dei Costruttore di Copia?



Tnk&Ciao

soalle
19-03-2003, 19:08
Hai un oggetto A ne devi costruire uno nuovo esattamente uguale ad A...
--> costruttore per copia ;)

cionci
19-03-2003, 19:18
Che vuol dire vantaggi ?!?!??
Il costruttore di copia esiste comunque...al massimo lo puoi sovrascrivere...

Il costruttore di copia predefinito non fa altro che copiare campo campo i dati di una classe in quella di un'altra da costruire...

Il costruttore di copia lo puoi richiamare in diversi modi...

Esplicitamente:

classe a;
classe b(a); //questo è il costruttore di copia

Implicitamente:

classe a;
classe b = a;

int f(classe c){
//c viene creata tramite il costruttore di copia...
}

f(a); //viene richiamato per creare la variabile c locale alla funz. f

E' necessario ridefinirlo ogni volta che nella classe si hanno strutture con allocazione dinamica o in casi particolari voluti dal programmatore...

Kleidemos
19-03-2003, 20:06
grazie!

miondere
24-03-2003, 02:23
Originally posted by "cionci"

per creare la variabile c locale alla funz. f

E' necessario ridefinirlo ogni volta che nella classe si hanno strutture con allocazione dinamica o in casi particolari voluti dal programmatore...

Nel caso di allocazione dinamica, tipo liste o vettori dichiarati con NEW, la ridefinizione del costruttore di copia mi serve per copiare tutta la memoria, vero?
Altrimenti senza la ridefinizione mi copia solo il puntatore. E' così?
Ho un pò le idee confuse, anche perchè sono alle prime armi con il C++ :p
Ciao

cionci
24-03-2003, 08:55
Sì...proprio per quello...