Skip to main content

Wat is een kopieerconstructor?

Een kopieconstructor is een speciale functie in C ++ en andere talen beïnvloed door C ++, die een coderingsobject kopieert.De programmeur doet dit door de Copy Constructor -verklaring toe te voegen en naar een object te verwijzen.In de eerste plaats komt dit de programmeur ten goede door tijd te besparen, maar het zorgt er ook voor dat de programmeur de codering van het object niet onjuist invoert.Wanneer de kopie wordt gemaakt, moet deze een andere geheugenaanwijzer hebben of wijst deze naar hetzelfde gedeelte waarop het oorspronkelijke object wijst.Een van de belangrijkste nadelen van het gebruik van kopieconstructeurs is dat ze niet onafhankelijk kunnen functioneren;Als het originele object wordt gewist, is de kopie ook.

Wanneer een programmeur een kopie -constructor gebruikt, vertelt hij of zij de code om een object te kopiëren dat al in de code is vermeld.Om dit te doen, moet de programmeur eerst een verklaring gebruiken om de codering te vertellen om de kopie -functie uit te voeren.De programmeur moet ook verwijzen naar een ander object, dus het object moet al worden gebouwd of er is geen manier om de kopie uit te voeren.

Het belangrijkste voordeel van het gebruik van een kopieconstructor is dat deze tijd bespaart.In plaats van dezelfde functies opnieuw te moeten typen en opnieuw te coderen, kan de programmeur gewoon een referentie toevoegen en is het object gereed.Dit heeft nog een verborgen voordeel in consistente en nauwkeurige codering.Zolang het oorspronkelijke object correct is gecodeerd, heeft het gekopieerde object ook de juiste codering.Beide voordelen zijn het meest duidelijk met complexe objecten, maar programmeurs kunnen ook profiteren van het kopiëren van eenvoudige objecten.

In C ++ talen vereisen veel functies een geheugenaanwijzer.Dit vertelt de functie precies waar hij in het geheugen moet kijken voor bepaalde informatie, of waar het gegevens kan opslaan.De programmeur moet een nieuwe geheugenaanwijzer opgeven wanneer een kopie -constructor wordt gebruikt;Anders gebruiken de twee objecten dezelfde geheugenruimte.Op het eerste gezicht lijkt dit misschien niet slecht, maar het kan leiden tot inconsistenties.Als beide objecten bijvoorbeeld dezelfde pointer delen en één object worden gebruikt om leningaanvragen in te dienen terwijl het gekopieerde object wordt gedaan om creditcardaanvragen in te dienen, worden alle creditcardaanvragen opgeslagen met de leningaanvragen.

Programmeurs moetenWees op hun hoede voor het wissen van een object, omdat kopie -constructorobjecten niet onafhankelijk kunnen functioneren.Als de programmeur het oorspronkelijke object wist, heeft het gekopieerde object niets te verwijzen.Zonder code om te verwijzen, kan het gekopieerde object zijn taak niet uitvoeren en zal het nutteloos worden.