Skip to main content

Hvad er en kopikonstruktør?

En kopikonstruktør er en speciel funktion i C ++ og andre sprog påvirket af C ++, der kopierer et kodende objekt.Programmøren gør dette ved at tilføje kopi -konstruktørerklæringen og henvise til et objekt.Primært er dette til gavn for programmereren ved at spare tid, men det sikrer også, at programmøren ikke indtaster objektets kodning forkert.Når kopien er lavet, skal den have en anden hukommelsespeger, eller den peger på det samme afsnit, som det originale objekt peger på.En af de største ulemper ved at bruge kopikonstruktører er, at de ikke kan fungere uafhængigt;Hvis det originale objekt slettes, vil kopien også være.

Når en programmør bruger en kopikonstruktør, fortæller han eller hun koden at kopiere et objekt, der allerede er anført i koden.For at gøre dette skal programmereren først bruge en erklæring til at fortælle kodningen for at udføre kopifunktionen.Programmereren skal også henvise til et andet objekt, så objektet skal allerede bygges, eller der vil ikke være nogen måde at udføre kopien.

Den største fordel ved at bruge en kopi -konstruktør er, at det sparer tid.I stedet for at skulle genindføre de samme funktioner og kode igen, kan programmereren bare tilføje en reference, og objektet vil være klar.Dette har en anden skjult fordel ved konsekvent og nøjagtig kodning.Så længe det originale objekt er kodet korrekt, vil det kopierede objekt også have den korrekte kodning.Begge disse fordele er mest synlige med komplekse objekter, men programmerere kan også drage fordel af at kopiere enkle objekter.

På C ++ sprog kræver mange funktioner en hukommelsespeger.Dette fortæller funktionen nøjagtigt, hvor man skal se i hukommelsen for visse oplysninger, eller hvor den kan gemme data.Programmereren skal specificere en ny hukommelsespointer, når der bruges en kopikonstruktør;Ellers bruger de to objekter det samme hukommelsesrum.På overfladen synes dette muligvis ikke dårligt, men det kan føre til uoverensstemmelser.For eksempel, hvis begge objekter deler den samme markør, og et objekt bruges til at indsende låneapplikationer, mens det kopierede objekt er lavet til at indsende kreditkortansøgninger, gemmes alle kreditkortsapplikationer med låneansøgningerne.

Programmerere skalVær forsigtig med at slette et objekt, fordi kopi -konstruktørobjekter ikke kan fungere uafhængigt.Hvis programmereren sletter det originale objekt, har det kopierede objekt intet at henvise til.Uden kode til reference vil det kopierede objekt ikke være i stand til at udføre sin opgave og vil blive ubrugelig.