-3
我看到这一点:question移动赋值运算符VS拷贝赋值运算符
但答案有非常复杂对于C++新手跟我一样。如果有人能帮助我,我希望它。
CLASSA & operator=(CLASSA && other); //move assignment operator
CLASSA & operator=(CLASSA other); //copy assignment operator
我仍然不明白为什么我们需要这两个?他们基本上做同样的事情?那么有什么区别,你会在哪里使用一个呢?
不是答案,但副本分配应该将'const CLASSA&other'作为参数来代替。 – HolyBlackCat
当实现移动赋值操作符时,您可以利用'other'变量被认为是临时的并且即将被销毁(从呼叫返回时)。所以如果你想要,你可以利用这个和“偷”它的内容,而不是复制它们。只要你将'other'留在有效状态(所以它可以被彻底销毁),没有代码会知道你做了什么。 –
只有当他们*不*做同样的事情时,您才需要两者。 –