1. 连锁赋值
int x, y, z;
x=y=z=15; //赋值连锁形式x=(y=(z=15));
为了实现“连锁赋值”,赋值操作符必须返回一个reference指向操作符的左侧实参。这是你为classes实现赋值操作符时应该遵
循的协议:
class Widget
{
public:
Widget& operator=(const Widget& rhs) //返回类型是个reference,指向当前对象。
{
return* this; //返回左侧对象
}
...
};
这个协议适用于+=,-,-=,*=等等。
2. 总结
1)令赋值(assignment)操作符返回一个reference to*this。
注:实验看到不返回*this,仍然可以支持连锁赋值。