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