Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> C /C + + Programming >> Content
    Hvordan bruke Copy Constructors i C + +
    En kopi konstruktør er en spesiell medlem funksjon inne i en klasse . Det aksepterer en referanse til et eksisterende objekt av samme klasse type og gjør en dyp kopi av det objektet. En dyp kopi ikke bare kopierer alle medlemslandene felt, men også kopierer noe dynamisk allokert minne. C + + kompilatorer gjør kopi konstruksjon automatisk. Du må definere en kopi konstruktør når din klasse involverer dynamisk minne . Du trenger
    Intermediate C + + kunnskap
    C + + kompilator, som Visual Studio 2008
    Vis flere instruksjoner
    en

    gjennomgang når du skal ringe en kopi konstruktør . Det er tre situasjoner: . Når du oppretter et objekt fra en eksisterende objekt av samme type, når du passerer et objekt av verdi til en funksjon og når en funksjon returnerer et objekt
    2

    vite når C + + klassen trenger en kopi konstruktør . Det koker ned til dette . Hvis klassen har pekere og den utfører dynamisk minne allokering , så må du gi den en eksplisitt kopi konstruktør .
    3

    se på et eksempel der du ikke trenger å definere en konstruktør for en C + + klassen. Klasse X har stable bare variabler og ingen pekere . Et grunt kopi er tilstrekkelig til å kopiere verdiene for et eksisterende objekt til et nytt objekt. Kompilatoren kan gjøre dette automatisk , slik at du ikke trenger å definere en kopi konstruktør for klassen X : en klasse X {
    int num ;
    publikum : en X ( ) : num ( 0 ) { } product: ~ X ();
    };
    4

    Study et eksempel som krever en eksplisitt copy- konstruktør definisjon. Som du kan se, er størrelsen på strengen , N, ikke en hardkodet verdi, men bestemmes av brukeren . Å skape B fra A som i uttrykket « ZB ( A) ," du må fortelle kompilatoren hvor mye minne som skal tildeles B. sted å gjøre dette på er i kopien konstruktør , som følger : en klasse Z {
    int N;
    char * str ;
    publikum:
    Z ( int n ) : N (n ) {
    str = new char [ N ];
    }
    Z (Z & andre) {
    str = new char [ other.GetLen ( ) ]; Twitter //kopiere data fra str av "andre" til str av "dette"
    }
    ~ Z ( ) {
    delete [ ] str ;
    }
    int GetLen ( ) const {
    retur N;
    }
    };


    früher :

     Weiter:
      Relatert Artike
    ·Hvordan implementere en algoritme til datamaskinen 
    ·Hvordan å kode en skjermsparer 
    ·Hvordan å kompilere C Prosjekter 
    ·Fordelene av LINQ 
    ·Hvordan få Copy & Paste på Windows Phone 7 for utvikl…
    ·Hvordan sette opp Bytes å motta numeriske data med Soc…
    ·Hvordan bruke Friend funksjoner i C + + 
    ·Hvordan skrive en MFC API for Workstation Shutdown 
    ·Hvordan endre navn på NIB å xib i Xcode 
    ·Hvordan skrive en C + + Program for gangetabellen for F…
      Anbefalte artikler
    ·Den Java-kode for å telle antall ord i en matrise 
    ·Tutorial på Visual Basic XY Positive 
    ·Hvordan få tilgang tupler i Python 
    ·Hvordan gjøre tillegg i Java 
    ·Hvordan gjøre en Faktorielle i CPP 
    ·Slik installerer Perl DBD - ODBC på AIX 
    ·Hvordan å kompilere Visual Basic 6.0 
    ·Hvordan laste og lagre flersidige TIF -filer i Vb.NET 
    ·Hvordan få en verdi fra et regneark ved hjelp VB 
    ·Slik konverterer Query til JSON PHP 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/