劍指offer 1 賦值運算子函式

2021-09-05 11:28:15 字數 628 閱讀 7317

/*

* 1.返回型別宣告為該型別的引用才可以連續賦值;

* 2.傳入的引數型別宣告為該型別的常量引用,避免形參到實參的傳遞呼叫複製建構函式;

* 3.在分配記憶體之前先釋放記憶體避免記憶體洩漏;

* 4.判斷傳入的引數和當前例項(*this)是否相同,如果相同則直接返回,否則釋放記憶體操作作用於本身。

*/#include #include #include class cmystring

;cmystring::cmystring(char *pdata)

else

}cmystring::cmystring(const cmystring &str)

cmystring::~cmystring()

//解法1:

cmystring& cmystring::operator=(const cmystring &str)

//解法2:在解法1中的new可能會出現記憶體不足的情況,而丟擲異常。2中則不會出現。如果記憶體不足,原來的資料並沒有被delete掉。

cmystring& cmystring::operator=(const cmystring &str)

}int main()

劍指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 賦值元素運算子函式

為了乙個類新增乙個賦值運算子函式 class str 賦值運算子,也就是過載 號運算子。過載賦值運算子需要注意 返回自身引用,因此可以實現連 操作 傳入引數為引用,減少開銷 如果類內物件,由在堆上分配記憶體。或者說是類的析構函式會釋放某些資料成員,那麼該資料成員就需要深度拷貝 傳入自身的時候,需要判...