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


Anmelden zum Antworten