令賦值操作符返回一個引用 to *this
例:
x=y=z=15; //連鎖賦值
賦值採用右結合律被解析爲 x=(y=(z=15));
爲了實現“連鎖賦值”,我們應該遵循這樣一個協議:賦值操作符必須返回一個引用指向操作符的左側實參。
看下面的實現:
public:
...
Widget& operator=(const Widget& rhs)//返回類型是引用,指向當前對象。
{
...
return* this;
}
};
該協議也適用於+= -= *= 等;
如果不遵循該協議,代碼一樣可通過編譯。