Effective C++(10)代入オペレータを再ロードすると、そのオブジェクトの参照が返されます(retrun*this)
問題の焦点:
このガイドラインは短いですが、コードの品質を高めることができます.
細部が成否を決めるので、このリロード割り当てオペレータで守らなければならないガイドラインを一緒に学びましょう.
1つの例から始めます.
Demo
上記の連鎖付与を実現するために、付与オペレータは、オペレータの左側を指すreferenceの実パラメータを返さなければならない.
次のようになります.
これは,すべての付与相関演算に適用されるプロトコルと考えられる.
このプロトコルを使用する理由:string、vector、complex、tr 1::shared_ptrまたは提供されるタイプは、共通に遵守されます.あなたが新しい理由を持っていない限り、みんなに従ってください.の
まとめ:
リロード代入オペレータに現在のオブジェクトの参照を返す(reference to*this)
参考資料:
《Effective C++ 3rd》
このガイドラインは短いですが、コードの品質を高めることができます.
細部が成否を決めるので、このリロード割り当てオペレータで守らなければならないガイドラインを一緒に学びましょう.
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》