Angenommen, ich möchte eine externe Funktion meines Objekts aufrufen, um einige Überprüfungen innerhalb des Body-Konstruktors durchzuführen. Da die Lebensdauer eines Objekts beginnt, wenn der Körper des Konstruktors seine Ausführung beendet, handelt es sich um ein unsicheres Design?C++: Lebensdauer eines Objekts und externe Funktionen
Ich meine, ich rufe und externe Funktion mit einem noch nicht lebenden Objekt. Ist es undefiniertes Verhalten?
Verwandte Fragen: Wenn ich diese überprüfende Funktion als eine Elementfunktion (statisch oder nicht) setze, was sagt der Standard über die Verwendung von nicht-noch-lebenden Objekten außerhalb des Konstruktors, aber innerhalb der Klasse?
Gibt es einen Unterschied in der Lebensdauer Konzept zwischen dem Standpunkt einer Klasse und ihren Benutzern (eine Art von in-class gegenüber Lebenszeiten außerhalb der Klasse)?
Die [C++ FAQ] (https://isocpp.org/wiki/faq/ctors#using-this-in-ctors) hat Informationen darüber. –
Es sollte in Ordnung sein, solange die Funktion kein Member virtual ist und nicht in der Initialisierungsliste ist. – KABoissonneault
A const & ist eine Referenz und wird weder am Anfang der Prüfung initialisiert noch am Ende der Funktionen zerstört. Neben dem Konstruktor ist das Objekt vollständig konstruiert. Ich sehe kein Problem in diesem Code – Brahim