Dator > hur man skriver en kopia konstruktor

  • hur man skriver en kopia konstruktor


  • I C + + , är en kopia konstruktor en speciell metod som skapats inom en klass som returnerar en exakt kopia av objektet som anropar den . För de enklaste klasserna , C + + språket hanterar skapandet av exemplar konstruktorer automatiskt . Men om din klass innehåller en pekare till en dynamiskt tilldelade området av data , måste du skriva en kopia konstruktör . Detta exempel förutsätter att du skriver en kopia konstruktor för en klass som heter

    Du behöver " Circle ".
    Computer
    C + + klass som använder dynamiskt tilldelade minnet eller anteckningar.


    1
    Lägg till följande i filen circle. h att förklara funktionen kopia bygga: .

    Circle ( const Circle C )

    Det bör naturligtvis tas upp i den offentliga delen av filen, inte privat .
    2 .
    Lägg till följande i filen circle. c att lägga till programmering kopia bygga:

    Cirkel : : Circle ( const Circle C ) {
    //Resten av koden kommer att gå här
    . }

    3 .
    Skriv kod för att kopiera alla de statiska data från första klass till den andra .

    x=cx ;
    y=cy ,
    r=cr ;

    Denna information skulle ha varit kopieras, även med standard kopia konstruktorn.
    4 .
    Skriv kod för att kopiera dynamiskt minne och pekare . Tänk dig en variabel som är en del av cirkeln "Färg * C. " Eftersom detta är en pekare , försöker helt enkelt kopiera den rörliga kommer bara kopierar ett minne adress , och detta kommer att leda till problem längre fram om en av de två cirklarna skall utgå . Så använder du "de-referens " operatör :

    color=c. * färg

    Detta säkerställer att "färg" variabla inom det nya cirkeln är en kopia av värdet av den ursprungliga färg , och inte bara en kopia av en delad minnesplats .

    tips och varningar


  • kopia konstruktorn har sig själv som argument med " const " sökord . Detta säkerställer att inga ändringar , avsiktliga eller ej, görs till den ursprungliga under kopieringen . Det är också gått med " "-symbolen , för att säkerställa att källan kopia som skickas till funktionen genom hänvisning . Detta förhindrar en cyklisk redundans fel : För att bli godkänd i sin vanilj form " av värde " , en kopia skall göras . Det är dock den funktion för att skapa kopior som skrivs .
  • Kopian constructor aldrig kommer att behöva kallas direkt . Istället kommer det att kallas när en kopia måste göras med ett '= ' tecknet .

Previous:nothing Next:hur du uppdaterar pri





Relaterade artiklar


  • hur du lägger upp filer via html och asp
  • hur du formaterar ett datum i asp
  • hur man läser en fil till en array med PHP
  • hur du aktiverar CRL-kontroll
  • hur man kan beräkna en median i Java
  • hur man skapar JMS meddelanden
  • hur man använder flera samtal inom Visual Basic
  • Visual Basic kombinationsruta tutorial
  • hur man installerar java 7
  • hur man identifierar hårdvaran på Toshiba Tecra S1