劍指offer 1 賦值元素運算子函式

2022-07-20 05:15:13 字數 489 閱讀 7231

為了乙個類新增乙個賦值運算子函式

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...