賦值運算子函式

2021-09-06 11:23:43 字數 412 閱讀 6282

題目:如下為型別cmystring的宣告,請為該型別新增賦值運算子函式。

class

cmystring

1、經典解法,初級程式設計師:

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

2、考慮異常安全的解法,高階程式設計師:

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

return *this

;

}

在cmystring的建構函式裡呼叫new分配記憶體,如果記憶體不足丟擲諸如bad_alloc等異常,還沒修改原來例項的狀態,保證率異常安全。

賦值運算子函式

賦值運算子函式的 需要關注幾點 1 是否把返回值的型別宣告為該型別的引用,並在函式結束前返回例項自身的引用 即 this 只有返回乙個引用,才可以允許連續賦值。否則如果函式的返回值void,該賦值運算子將不能做連續賦值。2 是否把傳入的引數的型別宣告為常量引用。引數宣告為引用可以避免無謂的消耗,提高...

賦值運算子函式

型別宣告如下 class cmystring 請為上型別新增賦值運算子函式.經典解法 cmystring cmystring operator const cmystring str 考慮異常安全性解法 cmystring cmystring operator const cmystring str...

賦值運算子函式

賦值運算子函式作為類的乙個成員函式,主要用於物件之間的賦值。類一般都有預設的賦值運算子函式,然而預設賦值運算子函式只會淺拷貝,無法滿足需求,有時還會產生致命錯誤。如下 class cstring cstring const cstring str buf nullptr cstring const ...