条款10 :令operator=返回一个reference to *this
**Have assignment operator return a reference to *this. **
- 为了实现类似连等的赋值形式,赋值操作符必须返回一个reference指向操作符的左侧。
//关于赋值你可以写成连续的形式
int x,y,z;
x=y=z=10;
//上述语句采用右结合律,也就是说10先被赋值给z,更新z的值
//然后将z的值赋值给y,更新y的值
//最后将y的值赋值给x,更新x的值。
//为了实现这样的赋值形式。
//赋值操作符必须返回一个reference指向操作符的左侧
//实参。这是你为类设计assignment操作符时该注意的问题。
class Widget{
public:
...
Widget& operator=(const Widget& rhs){
...
return *this;
}
...
};
//该协议适用于所有赋值相关运算
注意这只是一份协议而不是一项强制规定。只是说遵循协议会省去很多不必要的麻烦。
请记住
*令赋值(assignment)操作符返回一个reference to this 。