条款10 令operator=返回一个reference to *this
例如正常情况下我们可能想实现如下代码:
int x,y,z;
x = y = z = 20;
这种就是赋值连锁形式,为了实现连锁赋值,赋值操作符必须返回一个reference指向操作符的左侧实参。
这是大家实现class应该遵守的协议。
class Wdiget
{
public:
...
Wdiget& operator=(const Wdiget& rhs)
{
...
return *this; //返回左侧对象
}
};
其他赋值运算也应该遵守这个规定!