1.當類中有指標型別的資料成員或者有動態記憶體分配時,必須顯式的定義賦值操作符。是否把返回值的型別宣告位該型別的引用---------&2.為了滿足連續賦值,賦值操作符返回當前類物件的引用。
3.賦值時要注意自我賦值的處理。
是否把傳入引數的型別宣告為常量引用---------const------&
是否釋放例項自身已有的記憶體---------delete
是否判斷傳入引數和自身(*this)是不是同乙個例項--------*this
//賦值運算子過載
mystring &operator =
(const mystring &other)
/*******釋放原有的記憶體***********/
delete [
] m_str;
m_str =
null
;/************判斷傳入例項是否為null*******************/if(
&other.m_str)
return
*this;
}
賦值運算子過載函式
問題 給出如下cmystring的宣告,要求為該型別新增賦值運算子函式。class cmystring 當面試官要求應聘者定義乙個複製運算子函式時,他會關注如下幾點 是否把返回值的型別宣告為該型別的引用,並在函式結束前返回例項自身 即 this 的引用?只有返回乙個引用,才可以允許連續賦值。否則如果...
運算子過載 賦值運算子的過載
有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個int型別變數賦值給乙個complex物件,或把乙個 char 型別的字串賦值給乙個字串物件,此時就需要過載賦值運算子 注意 賦值運算子 只能過載為成員函式 賦值運算子過載例項示例 include include using namespace ...
過載賦值運算子
1 注意過載賦值運算子和,運算子必須定義為類的成員函式。2 注意 如果程式不提供顯示的賦值運算子則系統會提供乙個預設的賦值運算子。3 什麼時候過載賦值運算子 當類中含有指標成員時,一般都要重定義類的賦值運算子。4 過載賦值運算子時應有處理語句m m的情況。其中m是某乙個類的物件。如果不處理這樣的語句...