Und ruft der Standardkopiekonstruktor den Kopierkonstruktor auf allen Mitgliedern auf? Zum Beispiel, wenn eine Klasse ein nicht-POD Mitglied hat in etwa so:Ruft der Standardzuweisungsoperator den Operator = für alle Mitglieder auf?
class A
{
std::string str;
};
... wird die Standard-Compiler generieren Kopierkonstruktor und Zuweisungsoperator Arbeit richtig? Werden sie den Kopierkonstruktor der Zeichenkette und operator=
aufrufen oder werden sie nur eine bitweise Kopie der Elementvariablen str
erstellen?
Mit anderen Worten, bedeutet dies mit einem std::string
Mitglied diese Klasse benötigt einen Benutzer-implementierten Kopierkonstruktor und Zuweisungsoperator?
"Ja, der vom Compiler erzeugte wird korrekt funktionieren." - auch für Klassen mit konstanten Mitgliedern? –
@ Spin_Eeight dann eine Kopie oder Zuordnung würde nicht einmal kompilieren. –
@LuchianGrigore: Tatsächlich wird eine Kopie kompiliert. Die Aufgabe wird nicht offensichtlich. –