Ist es in C ++ sicher, den Gültigkeitsbereich um eine Referenz zu erweitern?
Was ich im Code meinen soll:
%Vor%Es ist NICHT sicher, den Umfang durch Referenz zu erweitern. Objekte in C ++ werden nicht gezählt, wenn obj1 den Gültigkeitsbereich verlässt. Es wird gelöscht, und das Ergebnis von badIdea () bringt Sie nur in Schwierigkeiten
Der einzige Bereich, in dem ein Bereich mit einer Referenz erweitert werden kann, ist eine const
-Referenz in namespace
oder Funktionsbereich (nicht bei Klassenmitgliedern).
Dieser Trick wird in Andrei Alexandrescus sehr cool scope guard , um eine const
Referenz auf eine Basisklasse des konkreten scope guards zu erfassen.