Item10-令operator = 返回一个reference to *this(Have assignment operators return a reference to *this) Ex: int x,y,z x=y=z=15; //赋值连锁形式 赋值采用右结合律,所以上述连锁赋值被解析为:x=(y=(z=15)); 为了实现"连锁赋值",赋值操作符必须返回一个reference指向操作符的左侧实参,这是你为classes实现赋值操作符时应遵循的协议. E
条款10: 令operator=返回一个reference to *this Have assignment operators return a reference to *this 关于赋值,可以把它们写成连锁形式: int x, y, z; x = y = z = 15; // 赋值连锁形式 赋值采用右结合律,所以上述连锁赋值被解析为: x = (y = (z = 15)); 这里15先被赋值给z,然后其结果(更新后的z)再被赋值给y,然后其结果(更新后的y)再被赋值给x. 为了实现
令operator= 返回一个reference to *this. Have assignment operators return a reference to *this. 赋值时,我们可以写成如下形式: int x,y,z; x=y=z=10; 这种连锁方式采用右结合方式,也就是 x=(y=(z=10)); 为了实现这种连锁赋值,赋值操作符需要返回一个 *this. 这是一个协议,并不是强制性的.