PDA

View Full Version : [Linguaggi OO] Costruttori di copia


Brizio92
13-07-2013, 17:16
Salve a tutti, benché credo di aver capito l'uso dei costruttori di copia, ho difficoltà nel dire cosa facciano di diverso da un operatore di assegnazione =.
So ovviamente in quale situazione serva uno ed in quale serva l'altro, ma se dovessi dire cosa fa un costruttore di copia mi verrebbe da dire praticamente lo stesso che direi per l'operatore di assegnazione.
Qual'è la differenza sostanziale?

P.S.: scusate la domanda alquanto stupida, in effetti già mi aspetto che qualcuno mi dirà che se non riesco a fare questa differenza in realtà non ho capito un bel niente dei costruttori xD

PHØΞИIX
16-07-2013, 09:46
Con l'operazione = non viene eseguita la creazione di un nuovo oggetto, ma il puntamento all'area di memoria in cui è istanziato tale oggetto.

String v1 = new String();

1) String v2 = v1;
2) String v2 = new String();

Nel caso 1, v1 e v2 puntano allo stesso oggetto. In pratica, lavorare su v1 o su v2 è la stessa cosa.
Nel caso 2, v1 e v2 puntano a due oggetti differenti.

nico159
16-07-2013, 12:45
Aggiungo una cosa, in C++ devi considerare anche const

Una variabile const non può utilizzare operator=
operator= non può modificare i membri cost dell'oggetto