Costruttore di copia

di il
9 risposte

Costruttore di copia

Ciao 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

9 Risposte

  • Re: Costruttore di copia

    Basta pensare ai membri della classe che sono puntatori e che puntano, in un determinato momento, a oggetti/strutture/buffer presenti in memoria.
  • Re: Costruttore di copia

    oregon 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....
  • Re: Costruttore di copia

    Sai cosa sia un puntatore e che questo può fare parte dei membri privati di una classe?
  • Re: Costruttore di copia

    oregon 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...
  • Re: Costruttore di copia

    Questa è 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.
  • Re: Costruttore di copia

    Io 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
  • Re: Costruttore di copia

    Intendo 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.
  • Re: Costruttore di copia

    Ah 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?!
  • Re: Costruttore di copia

    Come 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.
Devi accedere o registrarti per scrivere nel forum
9 risposte