/Anonimizzato12941Utente anonimizzato23 ago 2013, 11:45Ciao a tutti! Sono nuovo e spero di non aver sbagliato sezione!! Sto preparando un esame di c++ e trovo alcuni problemi sulla definizione e uso di costruttori di copia superficiale e profonda. Inoltre non riesco a trovare quali sono i side effects della copia superficiale!! Mi potete aiutare!???? Grazie
OoregonSuper FamosoIscritto danov, 2011Messaggi2191723 ago 2013, 12:17Basta pensare ai membri della classe che sono puntatori e che puntano, in un determinato momento, a oggetti/strutture/buffer presenti in memoria.
/Anonimizzato12941Utente anonimizzato23 ago 2013, 15:17oregon ha scritto:Basta pensare ai membri della classe che sono puntatori e che puntano, in un determinato momento, a oggetti/strutture/buffer presenti in memoria. Non riesco a capire quello che intendi....
OoregonSuper FamosoIscritto danov, 2011Messaggi2191723 ago 2013, 16:04Sai cosa sia un puntatore e che questo può fare parte dei membri privati di una classe?
/Anonimizzato12941Utente anonimizzato23 ago 2013, 16:08oregon ha scritto:Sai cosa sia un puntatore e che questo può fare parte dei membri privati di una classe? Si... ma non capisco ugualmente la differenza tra costruttore di copia superficiale e profonda...
OoregonSuper FamosoIscritto danov, 2011Messaggi2191723 ago 2013, 16:11Questa è un altra domanda ... non quella che avevi fatto prima. Tu chiedevi dei side effects del costruttore di copia superficiale non della differenza tra i due. Quello "superficiale" copia semplicemente i valori dei membri. Quello "profondo" copia i valori che possono essere copiati immediatamente mentre lavora diversamente con i puntatori che puntano ad aree di memoria (strutture oppure oggetti) allocati in precedenza.
/Anonimizzato12941Utente anonimizzato23 ago 2013, 16:39Io chiedevo entrambi in realtà... magari mi sono espresso male!! In ogni caso, cosa intendi per "lavora diversamente con i puntatori che puntano ad aree di memoria (strutture oppure oggetti) allocati in precedenza"?? Grazie
OoregonSuper FamosoIscritto danov, 2011Messaggi2191723 ago 2013, 16:42Intendo che non può copiarli dato che punterebbero alla stessa memoria. Se i puntatori non sono NULL non sono copiati ma viene allocata nuovamente la memoria e il suo contenuto copiato.
/Anonimizzato12941Utente anonimizzato23 ago 2013, 17:10Ah ok perfetto!! e per il discorso slide effects dei costruttori di copia superficiali!? Può essere legato al fatto che se cambi quello copiato, le copie cambiano a loro volta?!
OoregonSuper FamosoIscritto danov, 2011Messaggi2191724 ago 2013, 11:32Come ti ho già detto, nel caso dei puntatori non basta copiarli perché se lo fai i due puntatori puntano alla stessa area di memoria e a questo punto è ovvio che i dati puntati sono gli stessi.