Ist es in C ++ sicher, den Umfang über eine Referenz zu erweitern?

8

Ist es in C ++ sicher, den Gültigkeitsbereich um eine Referenz zu erweitern?

Was ich im Code meinen soll:

%Vor%     
Brian R. Bondy 02.11.2008, 10:44
quelle

3 Antworten

20

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

    
Harald Scheirich 02.11.2008, 10:18
quelle
14

Der einzige Bereich, in dem ein Bereich mit einer Referenz erweitert werden kann, ist eine const -Referenz in namespace oder Funktionsbereich (nicht bei Klassenmitgliedern).

%Vor%

Dieser Trick wird in Andrei Alexandrescus sehr cool scope guard , um eine const Referenz auf eine Basisklasse des konkreten scope guards zu erfassen.

    
Motti 02.11.2008 10:25
quelle
0

Bitte erläutern Sie, was Sie meinen.

Angenommen, Sie beabsichtigen dies:

%Vor%

Dann nein, absolut nicht, der Umfang wird nicht durch eine Referenz erweitert.

Vielleicht möchten Sie sich intelligente Zeiger ansehen, z. aus Boost-Bibliotheken: clickety

    
peterchen 02.11.2008 10:16
quelle

Tags und Links