Anfänger std::move



  • camper schrieb:

    Fraaaggger schrieb:

    camper schrieb:

    X& X::operator= (X const& rhs)
    {   
        return *this = X(rhs);
    }
    

    Was wird denn hier zurückgegeben? Also was ist der Rückgabewert einer zuweisung?

    X(rhs) erzeugt ein temporäres Objekt, das dann für die Zuweisung genutzt wird. Weil es sich um ein rvalue handelt, wird die andere Zuweisungsüberladung aufgerufen, und somit das zurückgegeben, was die andere Funktion zurückgibt, also *this.

    Ahh! Jetzt machts sinn, danke! 🙂


Anmelden zum Antworten