verwendet wird mir bitte korrigieren, wenn ich falsch bin, aber mein Verständnis ist, dass eine Kopie Konstruktor wird verwendet, wenn Sie dies tun:(C++) Zuweisungsoperator vs Copykonstruktor: wenn jeder implizit
myClass newInstant = oldInstant;
während einer Zuordnung Operator wird verwendet, wenn Sie dies tun:
myClass newInstant;
newInstant = oldInstant;
ich glaube, beide das gleiche Ergebnis erzielen, aber die erste ist direkter, weil es einen Konstruktor zu vermeiden, mit zuerst, dann das Kopieren über den neuen Daten.
Woran ich mich nicht sicher bin: Wenn eine Funktion nicht sofort durch Verweis übergeben wird, wird sie mit dem Kopierkonstruktor oder dem Zuweisungsoperator kopiert. Zusätzlich, das verwendet wird, wenn ein Moment von der Funktion zurückgegeben wird.
Im Allgemeinen, in welchen Fällen werden der Kopierkonstruktor und der Zuweisungsoperator verwendet?
Eine letzte Frage, wie würde ich einen Wert zurückgeben, ohne es zu kopieren? Wenn ein zurückgegebener Instant eine Kopie ist und der alte Instant gelöscht wird, wie würde ich das umgehen, um effizienter zu sein?
Dank
Der Kopierkonstruktor wird verwendet, wenn eine neue Instanz mit einer vorhandenen Instanz erstellt wird und ein Zuweisungsoperator zum Überschreiben einer vorhandenen Instanz durch eine andere Instanz verwendet wird. Wenn also etwas wertmäßig an eine Funktion übergeben wird, wird eine neue Instanz aus einer bestehenden erzeugt, also .......... Wenn Sie bei der Rückgabe nach Wert Kopien vermeiden möchten, stellen Sie sicher, dass der Code eine Rückgabewertoptimierung ermöglicht, oder verschieben Sie, was immer teuer zu kopieren ist. –
die "letzte Frage" ist eine separate Frage. Bitte halte dich an 1 Frage pro Frage. Sie sollten in der Lage sein, Antworten auf diese Frage zu finden, indem Sie die Site durchsuchen –