Was ist ein Kopierkonstruktor?
Ein Kopierkonstruktor ist eine spezielle Funktion in C ++ und anderen von C ++ beeinflussten Sprachen, die ein Codierungsobjekt kopiert. Der Programmierer fügt dazu die Copy-Konstruktor-Deklaration hinzu und verweist auf ein Objekt. Dies kommt in erster Linie dem Programmierer zugute, indem er Zeit spart, stellt aber auch sicher, dass der Programmierer die Codierung des Objekts nicht falsch eingibt. Wenn die Kopie erstellt wird, muss sie einen anderen Speicherzeiger haben, oder sie zeigt auf denselben Abschnitt, auf den das ursprüngliche Objekt zeigt. Einer der Hauptnachteile bei der Verwendung von Kopierkonstruktoren besteht darin, dass sie nicht unabhängig voneinander funktionieren können. Wenn das ursprüngliche Objekt gelöscht wird, wird auch die Kopie gelöscht.
Wenn ein Programmierer einen Kopierkonstruktor verwendet, weist er den Code an, ein bereits im Code aufgeführtes Objekt zu kopieren. Zu diesem Zweck muss der Programmierer zuerst eine Deklaration verwenden, um die Codierung anzuweisen, die Kopierfunktion auszuführen. Der Programmierer muss auch auf ein anderes Objekt verweisen, damit das Objekt bereits erstellt wurde. Andernfalls kann die Kopie nicht ausgeführt werden.
Der Hauptvorteil der Verwendung eines Kopierkonstruktors ist die Zeitersparnis. Anstatt dieselben Funktionen erneut eingeben und erneut codieren zu müssen, kann der Programmierer einfach eine Referenz hinzufügen, und das Objekt ist bereit. Dies hat einen weiteren versteckten Vorteil in der konsistenten und genauen Codierung. Solange das ursprüngliche Objekt korrekt codiert ist, hat das kopierte Objekt auch die korrekte Codierung. Beide Vorteile sind bei komplexen Objekten am offensichtlichsten, aber Programmierer können auch vom Kopieren einfacher Objekte profitieren.
In C ++ - Sprachen erfordern viele Funktionen einen Speicherzeiger. Dies teilt der Funktion genau mit, wo im Speicher nach bestimmten Informationen gesucht werden soll oder wo Daten gespeichert werden können. Der Programmierer muss einen neuen Speicherzeiger angeben, wenn ein Kopierkonstruktor verwendet wird. Andernfalls verwenden die beiden Objekte denselben Speicherplatz. An der Oberfläche mag dies nicht schlecht erscheinen, aber es kann zu Inkonsistenzen führen. Wenn beispielsweise beide Objekte denselben Zeiger verwenden und ein Objekt zum Einreichen von Kreditanträgen verwendet wird, während das kopierte Objekt zum Einreichen von Kreditkartenanträgen verwendet wird, werden alle Kreditkartenanträge mit den Kreditanträgen gespeichert.
Programmierer müssen vorsichtig sein, ein Objekt zu löschen, da Copy-Konstruktor-Objekte nicht unabhängig voneinander funktionieren können. Wenn der Programmierer das ursprüngliche Objekt löscht, hat das kopierte Objekt nichts zu referenzieren. Ohne Referenzcode kann das kopierte Objekt seine Aufgabe nicht erfüllen und wird unbrauchbar.