29 October 2022

C++ 核心指南目录

C.63: Make move assignment non-virtual, take the parameter by &&, and return by non-const&

理由

简单又高效。

强化

这样操作就和拷贝赋值操作对齐了。

  • (简单)赋值操作不能是虚函数,此处有恶龙出没!
  • (简单)赋值操作应该返回T&,从而可以串联起来调用。不要返回const T&,这样的话,串联操作、把对象放入容器的操作就会收到影响。
  • (中等难度)移动操作应该(隐式或显式)地调用其基类和成员变量的移动操作。