Skip to main content

Hva er en kopikonstruktør?

En kopikonstruktør er en spesiell funksjon i C ++, og andre språk påvirket av C ++, som kopierer et kodingsobjekt.Programmereren gjør dette ved å legge til Copy Constructor Declaration og referere til et objekt.Primært er dette gagner programmereren ved å spare tid, men det sikrer også at programmereren ikke går inn i objektets koding feil.Når kopien er laget, må den ha en annen minnepeker, eller den vil peke på den samme delen som det opprinnelige objektet peker til.En av de største ulempene med å bruke kopikonstruktører er at de ikke kan fungere uavhengig;Hvis det opprinnelige objektet blir slettet, vil kopien også være.

Når en programmerer bruker en kopikonstruktør, ber han eller hun ber koden å kopiere et objekt som allerede er oppført i koden.For å gjøre dette, må programmereren først bruke en erklæring for å fortelle kodingen for å utføre kopifunksjonen.Programmereren må også referere til et annet objekt, så objektet må allerede bygges, eller det vil ikke være noen måte å utføre kopien.

Den største fordelen med å bruke en kopikonstruktør er at den sparer tid.I stedet for å måtte skrive ut de samme funksjonene på nytt og kode igjen, kan programmereren bare legge til en referanse, og objektet vil være klart.Dette har en annen skjult fordel i jevn og nøyaktig koding.Så lenge det opprinnelige objektet er kodet riktig, vil det kopierte objektet også ha riktig koding.Begge disse fordelene er mest tydelige med komplekse objekter, men programmerere kan også dra nytte av å kopiere enkle objekter.

I C ++ -språk krever mange funksjoner en minnepeker.Dette forteller funksjonen nøyaktig hvor du skal se i minnet for viss informasjon, eller hvor den kan lagre data.Programmereren må spesifisere en ny minnepeker når en kopikonstruktør brukes;Ellers vil de to objektene bruke det samme minneområdet.På overflaten virker dette kanskje ikke dårlig, men det kan føre til uoverensstemmelser.For eksempel, hvis begge objektene deler den samme pekeren og ett objekt brukes til å sende inn lånesøknader mens det kopierte objektet er gjort for å sende inn kredittkortsøknader, vil alle kredittkortsøknader bli lagret med lånesøknader.

Programmerere måVær på vakt mot å slette et objekt, fordi kopieringsobjekter ikke kan fungere uavhengig.Hvis programmereren sletter det opprinnelige objektet, vil det kopierte objektet ikke ha noe å referere til.Uten kode til referanse vil det kopierte objektet ikke kunne utføre oppgaven sin og vil bli ubrukelig.