Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    33

    [c++] Costruttore Di Copia

    mi potete fare un esempio di quando si usa il costruttore di copia( frammento di programma)? per esempio quando si inizializza un oggetto classe con un altro appartenente alla stessa classe



    grazie in anticipo mad

  2. #2
    Utente di HTML.it L'avatar di Angioletto
    Registrato dal
    Jan 2004
    Messaggi
    1,246
    ci ho messo anche io un pò per capire cosa rappresenti il costruttore di copia..

    codice:
    class Intero {
      private:
          i;
      public:
          Intero();
          Intero(const Intero & init);  // costruttore di copia 
          AddValue();
          ResetValue();
      }; 
    Intero i1;
    i1.AddValue;
    Intero i2(i1);
    Con il costruttore di copia inizializzi un oggetto con i valori di un altro oggetto: nell'esempio inizializzi la classe i2 con i valori di i1..

    Ovviamente deve essere l'oggetto i1 a copiarsi e ad offrire la sua copia per la costruzione di i2, altrimenti non avresti alcun modo per accedere alla parte privata di i1!!!

    Ecco l'implementazione del costruttore di copia per questa classe semplice semplice:
    codice:
    Intero :: Intero(const Intero &init) {
      i=init.i;
        }

    init è l'oggetto da copiare : si passa per riferimento, ma col qualificatore const...

    In realtà, sperando di essere stato chiaro, posso anche dirti che per la precedente classe è inutile il costruttore di copia: ma se non si fanno esempi semplici poi come si capiscono le cose??
    Il costruttore di copia va fatto quando le variabili membro hanno un'estensione dinamica(per evitare la swallow-copy).

    Se vuoi possiamo parlare anche di quest'altro aspetto!!!
    A presto!!
    Per liquidare un popolo si comincia con il privarli della memoria.Si distruggono i loro libri, la loro cultura, la loro storia. E qualcun’ altro scrive loro altri libri, li fornisce di un’altra cultura, inventa per loro un’altra storia. (Milan Kundera)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.