Effective C++ 學記之10 令operator=返回一個 reference to *this

令賦值操作符返回一個引用 to *this

例:

int x,y,z;
x=y=z=15; //連鎖賦值

賦值採用右結合律被解析爲 x=(y=(z=15));


爲了實現“連鎖賦值”,我們應該遵循這樣一個協議:賦值操作符必須返回一個引用指向操作符的左側實參。

看下面的實現:

class Widget{
public:
    ...
    Widget& operator=(const Widget& rhs)//返回類型是引用,指向當前對象。
    {
        ...
        return* this;              
    }    
};

該協議也適用於+= -= *= 等;

如果不遵循該協議,代碼一樣可通過編譯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章