| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> C /C + + Programming >> Content
    Come utilizzare costruttori di copia in C + +
    Un costruttore di copia è una funzione membro speciale all'interno di una classe . Si accetta un riferimento a un oggetto esistente dello stesso tipo di classe e fa una copia completa di tale oggetto . Una copia profonda copia non soltanto tutti i campi membro , ma anche copia qualsiasi memoria allocata dinamicamente . Compilatori C + + automaticamente fare copia costruzione . È necessario definire un costruttore di copia quando la classe coinvolge memoria dinamica . Cose che ti serviranno
    Intermedio C + + Commercio conoscenza compilatore C + + , come Visual Studio 2008
    Mostra più istruzioni
    1

    recensione quando chiamare un costruttore di copia . Ci sono tre situazioni : . Durante la creazione di un oggetto da un oggetto esistente dello stesso tipo , quando si passa un oggetto di valore ad una funzione e quando una funzione restituisce un oggetto
    2

    sapere quando il C + + classe ha bisogno di un costruttore di copia . Si riduce a questo . Se la classe ha puntatori e svolge allocazione dinamica della memoria , allora si deve dare una copia costruttore esplicito .
    3

    Guarda un esempio in cui non si dispone di definire un costruttore per una classe C + + . Classe X è impilare solo variabili e non puntatori . Una copia superficiale è sufficiente per copiare i valori di un oggetto esistente in un nuovo oggetto . Il compilatore può farlo automaticamente , quindi non è necessario definire un costruttore di copia per la classe X :
    class X {
    int num ;
    pubblico :
    X ( ) : num ( 0 ) { }
    ~ X (); }
    ;
    4

    studio un esempio che richiede una definizione di costruttore di copia esplicita. Come si può vedere , la dimensione della stringa , N , non è un valore hard- coded ma è determinata dall'utente . Per creare B da A , come nell'espressione " ZB ( A) , " è necessario indicare al compilatore la quantità di memoria da allocare per la B. Il luogo per farlo è nel costruttore di copia , come segue :
    classe Z {
    int N;
    char * str ;
    pubblico :
    Z ( int n ) : N ( n) {
    str = new char [ N] ;
    }
    Z ( Z & altro ) {
    str = new char [ other.GetLen ( ) ] ;
    //copiare i dati dalla str di "altro " per la str di "questo "
    }
    ~ Z ( ) {
    delete [ ] str ;
    }
    int GetLen ( ) const {
    ritorno N;

    } } ;


    Previous :

    next :
      Articoli Correlati
    ·Che cosa è il debug in programmazione C 
    ·Tipi di dati per Turbo C 
    ·Come usare stringhe come input da tastiera in due matri…
    ·Come dichiarare le funzioni statiche in C + + 
    ·Come scrivere un griglia 5X5 utilizzando C + + 
    ·Temperature Converter in C + + Utilizzo di funzioni 
    ·Come progettare il proprio gioco in C + + 
    ·Come compilare un CPP Con un file di intestazione 
    ·Come controllare se un array ha valore o non in C + + 
    ·Come scoprire cosa di C le funzioni sono disponibili in…
      Articoli in evidenza
    ·Qual è la classe String in Java ? 
    ·MySQL incremento automatico non è sincronizzato 
    ·Come utilizzare Google Translate per API e PHP 
    ·Come compilare un progetto di Android su Windows 
    ·Come utilizzare un CheckBox e un controllo ComboBox in …
    ·Che cosa significa per legare medio in un computer ? 
    ·Che cosa è un modificatore static 
    ·Books related to Computer Science 
    ·Come aprire un file da argomento di input in Ruby 
    ·Come usare sia SRC e Inline in JavaScript 
    Copyright © Conoscenza Informatica http://it.wingwit.com