operator = 中处理“自我赋值”
class Wdiget{...}
Widget w;
w = w;
a[i] = a[j];
*px = *py;
class Base{}
class Derived:public Base{...};
确保对象自我赋值的时候,operator = 有良好的行为,其中技术包括比较 “来源对象” 和 “目标对象” 的地址,精心周到的语句顺序,以及copy and swap;
确定任何函数如果操作一个以上对象,而其中多个对象是同一个对象的时候,行为仍然正确。