¿Por qué necesitamos establecer la referencia rvalue en null en move constructor?

//code from https://skillsmatter.com/skillscasts/2188-move-semanticsperfect-forwarding-and-rvalue-references
class Widget {
public:
    Widget(Widget&& rhs)
        : pds(rhs.pds) // take source’s value
    { 
        rhs.pds = nullptr;  // why??
    }

private:
    struct DataStructure;
    DataStructure *pds;
};

No puedo entender la razón para configurarrhd.pds anullptr .

¿Qué sucederá si eliminamos esta línea?rhs.pds = nullptr;

Respuestas a la pregunta(3)

Su respuesta a la pregunta