Effective C++(10)代入オペレータを再ロードすると、そのオブジェクトの参照が返されます(retrun*this)


問題の焦点:
このガイドラインは短いですが、コードの品質を高めることができます.
細部が成否を決めるので、このリロード割り当てオペレータで守らなければならないガイドラインを一緒に学びましょう.
1つの例から始めます.
Demo
//     
x = y = z = 15;
//          
x = ( y = ( z = 15 ) );

上記の連鎖付与を実現するために、付与オペレータは、オペレータの左側を指すreferenceの実パラメータを返さなければならない.
次のようになります.
class Widget {
public:
    Widget& operator=(const Widget& rhs)
   {
        ....
        return* this;
    }
};

これは,すべての付与相関演算に適用されるプロトコルと考えられる.
class Widget {
public:
    ...
    Widget& operator+=(const Widget& rhs)
    {
        ....
        return *this;
    }
    Widget& operator=(const Widget& rhs)
    {
        ...
        return *this;
    }
};

このプロトコルを使用する理由:string、vector、complex、tr 1::shared_ptrまたは提供されるタイプは、共通に遵守されます.あなたが新しい理由を持っていない限り、みんなに従ってください.の
まとめ:
リロード代入オペレータに現在のオブジェクトの参照を返す(reference to*this)
参考資料:
《Effective C++ 3rd》