reference returns frage
-
hallo,
ich verstehe eine Sache nicht ganz:
Ich habe z.B. 2 Funktionen:CString& getStr() { return m_str; // m_str ist CString }und eine
Foo& getFoo() // habe eine c_apInstance als std::auto_ptr<Foo> c_apInstance; { // mach was, aloziere neuen Speicher. return *c_apInstance; }Warum muss man bei einem "referenz-return" mal mit * dereferenzieren und mal nicht? Vorallem bei den meisten MFC Klassen geht "return *Variable" meistens gar nicht.
-
...
-
Hallo,
das sollte klar sein: im ersten Fall wird ja ein Objekt zurückgegeben (auf dieses Objekt kann eine Referenz zurückgegeben werden), im zweiten Falle ist c_apInstance ein auto_ptr, und wie kommt man an das Objekt, auf daß der auto_ptr zeigt? Genau, in dem man den auto_ptr dereferenziert mit dem *-Operator. Ich denke, das ist klar...(es soll ja nicht der auto_ptr in der Referenz landen, sondern das Objekt).
MfG