還是有很多點需要注意的。
判斷this
與傳入的object
是否是同乙個物件,相同的話直接返回*this
就可以了。
判斷傳入物件的陣列是否為空,空的話就不必複製,直接釋放記憶體並將指標置null
即可。
考慮異常安全。因為new char
時如果記憶體不足會丟擲異常,這時安全的做法是先嘗試申請記憶體,申請成功後再釋放原來的記憶體,如果申請失敗原來的資料還在。
class solution
solution(char *pdata)
// implement an assignment operator
solution& operator=(const solution &object)
if (!object.m_pdata)
char *tmp = m_pdata;
try catch (bad_alloc& e)
return *this;
}};
劍指offer 賦值運算子過載函式 1
題目 如下為cmystring的宣告,請為該型別新增賦值運算子過載函式。class cmystring cmystring cmystring operator const cmystring src 防止記憶體洩漏,先釋放原有的記憶體 delete m pdata m pdata null m p...
劍指Offer 賦值運算子函式
按照自己淺薄的理解,敲了如下 include using namespace std class cmystring 就是定義了!cmystring char m pchar null cmystring const cmystring other cmystring cmystring opera...
劍指offer 賦值運算子函式
題目 如下為型別cmystring的宣告,請為該型別新增賦值運算子函式 class cmystring 思路 類的定義和基本形式 類其實是定義乙個特殊的資料結構,定義了類的物件包括了什麼,以及可以在這個物件上執行哪些操作 class student 成員函式定義 student student vo...