Warum müssen wir rvalue reference im move-Konstruktor auf null setzen?
//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;
};
Ich kann den Grund für die Einstellung nicht verstehenrhd.pds
zunullptr
.
Was passiert, wenn wir diese Zeile entfernen:rhs.pds = nullptr;