请注意:
确保当对象自我赋值时,operator=有良好的行为,如比较“来源对象”和“目标对象的地址”、精心的语句顺序以及赋值和交换;
确定任何函数如果操作一个以上的对象,其中多个对象是同一个对象时,其行为仍然正确。
Base& operator=(const Base & b)
{
if (this==&b)
return *this;
.....
return *this;
}
请注意:
确保当对象自我赋值时,operator=有良好的行为,如比较“来源对象”和“目标对象的地址”、精心的语句顺序以及赋值和交换;
确定任何函数如果操作一个以上的对象,其中多个对象是同一个对象时,其行为仍然正确。
Base& operator=(const Base & b)
{
if (this==&b)
return *this;
.....
return *this;
}