1
This是一個很好的教程,說明了設計C++賦值運算符的正確方法。在C++ Assignment Operator教程中是否存在拼寫錯誤?
最後,作者提供以下替換實現對於操作如下:
1 Foo& operator=(Foo rhs)
2 {
3 swap(rhs);
4 return *this;
5 }
基於該swap,線3
應該是swap(*this, rhs)
或swap(rhs, *this)
。
問題>我的理解是否正確?
謝謝
這篇文章提到「因爲移動指針不會拋出異常,所以我們可以編寫一個swap()方法來交換兩個具有no-throw保證的Foo對象的內容,然後我們可以將整個拷貝構造函數寫成跟隨..「,所以在這裏交換被認爲是一個成員函數。 – rraawwrr 2012-04-01 16:21:53