為了乙個類新增乙個賦值運算子函式
class str
賦值運算子,也就是過載=號運算子。過載賦值運算子需要注意:
返回自身引用,因此可以實現連=操作
傳入引數為引用,減少開銷
如果類內物件,由在堆上分配記憶體。或者說是類的析構函式會釋放某些資料成員,那麼該資料成員就需要深度拷貝
傳入自身的時候,需要判斷是否需要賦值
在賦值發生錯誤的時候,能夠回滾到原來的狀態。
str &str::operator=(/*const
*/ str &str)
return
this;}
void str::swap(str &str)
//另一種實現,不在傳入應用,直接在傳值截斷進行 拷貝,
//效能靠編譯器來優化
str &str::operator=(str str)
劍指offer1 賦值運算子函式
include using namespace std class cmystring cmystring const cmystring str cmystring operator const cmystring str int display cmystring private char m ...
劍指offer 1 賦值運算子函式
題目描述 如下為型別cmystring的宣告,請為該型別新增賦值運算子函式。實現如下 是我的解法,適合c 初級程式設計師 created by yanpan on 2018 9 30.if 1 include using namespace std class cmystring cmystring...
劍指offer 1 賦值運算子函式
1.返回型別宣告為該型別的引用才可以連續賦值 2.傳入的引數型別宣告為該型別的常量引用,避免形參到實參的傳遞呼叫複製建構函式 3.在分配記憶體之前先釋放記憶體避免記憶體洩漏 4.判斷傳入的引數和當前例項 this 是否相同,如果相同則直接返回,否則釋放記憶體操作作用於本身。include inclu...