|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jun 2012
Messaggi: 12
|
[Linguaggi OO] Costruttori di copia
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 |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Sep 2007
Città: Albiolo (CO)
Messaggi: 165
|
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. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
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
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:52.