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 kopirekonstruktørerklæringen og referere til et objekt. Dette fordeler først og fremst programmereren ved å spare tid, men det sikrer også at programmereren ikke skriver inn objektets koding feil. Når kopien er laget, må den ha en annen minnepeker, ellers peker den til den samme delen som det opprinnelige objektet peker på. En av de største ulempene ved å bruke kopikonstruktører er at de ikke kan fungere uavhengig; Hvis det originale objektet blir slettet, vil kopien også være.
Når en programmerer bruker en kopikonstruktør, ber han eller hun koden om å 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 å utføre kopifunksjonen. Programmereren må også referere til et annet objekt, så objektet må allerede bygges ellers er det ingen måte å utføre kopien på.
Den største fordelen med å bruke en kopikonstruktør er at det sparer tid. I stedet for å måtte skrive inn de samme funksjonene på nytt og kode om igjen, kan programmereren bare legge til en referanse, og objektet vil være klart. Dette har en annen skjult fordel ved konsekvent og nøyaktig koding. Så lenge det opprinnelige objektet er riktig kodet, vil det kopierte objektet også ha riktig koding. Begge disse fordelene er mest synlige med komplekse objekter, men programmerere kan også dra nytte av å kopiere enkle objekter.
På C ++ -språk krever mange funksjoner en minnepeker. Dette forteller funksjonen nøyaktig hvor du skal se i minnet etter 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 den samme minneplassen. På overflaten kan dette ikke virke dårlig, men det kan føre til uoverensstemmelser. For eksempel, hvis begge objektene har den samme pekeren og ett objekt blir brukt til å sende inn lånesøknader mens det kopierte objektet er laget for å sende inn kredittkortsøknader, vil alle kredittkortsøknadene bli lagret sammen med lånesøknadene.
Programmerere må være på vakt mot å slette et objekt, fordi kopi-konstruktørobjekter ikke kan fungere uavhengig av hverandre. Hvis programmereren sletter det opprinnelige objektet, vil det kopierte objektet ikke ha noe å referere til. Uten noen kode å referere, vil det kopierte objektet ikke kunne utføre oppgaven sin og vil bli ubrukelig.