| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> C /C + + Programming >> Content
    Sådan bruges Copy Constructors i C + +
    En kopi constructor er en speciel medlemsfunktion inde i en klasse. Det accepterer en reference til et eksisterende objekt af samme klasse type og gør en dyb kopi af objektet . En dyb kopi ikke kun kopierer alle medlemslande områder, men også kopierer nogen dynamisk allokeret hukommelse. C + + compilere gør kopi byggeri automatisk. Du er nødt til at definere en kopi constructor når din klasse involverer dynamiske hukommelse. Ting du skal
    Intermediate C + + viden
    C + + compiler, ligesom Visual Studio 2008
    Vis Flere Instruktioner
    1

    anmeldelse når at kalde en kopi konstruktør. Der er tre situationer: . Når du opretter et objekt fra et eksisterende objekt af samme type , når du passerer et objekt efter værdi til en funktion , og når en funktion returnerer et objekt
    2

    vide, hvornår din C + + klasse har brug for en kopi konstruktør. Det kan koges ned til dette . Hvis din klasse har pointers og den udfører dynamisk allokering af hukommelse , så skal du give det en eksplicit kopi konstruktør.
    3

    se på et eksempel , hvor du ikke behøver at definere en konstruktør for en C + + klasse . Klasse X har kun stak variabler og ingen pointere . En flad kopi er tilstrækkelig til at kopiere værdierne i et eksisterende objekt til et nyt objekt . Compileren kan gøre dette automatisk , så du ikke behøver at definere en kopi konstruktør for klasse X : Hej class X {
    int num ,
    offentlighed : Hej X ( ) : Antal (0) {}
    ~ X ();
    };
    4

    Study et eksempel, som kræver en aktiv kopi - konstruktør definition. Som man kan se , størrelsen af strengen , N , er ikke en hård -kodet værdi, men bestemmes af brugeren . Sådan opretter B fra A som i udtrykket " ZB (A) , " du er nødt til at fortælle compileren hvor meget hukommelse til at tildele for B. sted at gøre dette er i kopi-constructoren , som følger : Hej class Z {
    int N
    char * str ;
    offentligt : Hej Z ( int n ) : N ( n ) {
    str = new char [N] ;
    }
    Z ( Z & andet) {
    str = new char [ other.GetLen ( )],
    //kopiere data fra str af "andet" til str af "this "
    } < br > ~ Z ( ) {
    delete [ ] str ,
    }
    int GetLen () const {
    tilbagevenden N;
    }
    };
    < br >

    Forrige :

    næste :
      Relaterede artikler
    ·Formål CString Methods 
    ·Sådan Fed Ord i C + + med Xcode 
    ·Hvordan kan jeg Fix en Visual Studio 6.0 T-SQL Debugger…
    ·Hvordan man laver en Card Game fil i C + + 
    ·Sådan vises skrifttyper i MFC 
    ·Sådan bruges Strings som input fra tastaturet i to dim…
    ·Sådan bruges todimensionelle tegndatatabeller i C 
    ·Sådan redigeres en Word-dokument i C # 
    ·Hvordan man laver en trykknap Synlig i Visual C 
    ·Sådan får du et produkt af et array i C + + 
      Anbefalede Artikler
    ·Sådan får du en session fil i PHP 
    ·Sådan multitaske Java 
    ·Sådan tælle, hvor mange linjer kode dig Har 
    ·Sådan Set Up MySQL Remote Access 
    ·Sådan Konverter HTML til almindelig tekst i Java Apple…
    ·Sådan Konverter og afkode HTML til en String på iPhon…
    ·Hvordan man skriver Source Code 
    ·Hvorfor er alle steder lappet Against SQL angreb 
    ·Sådan bruges Eclipse for PHP 
    ·Formål med Java Applets 
    Copyright © Computer Viden http://www.computerdk.com