賦值運算子

2021-08-06 03:58:34 字數 739 閱讀 2993

對於賦值運算子正常需要考慮4點

1.傳入引數是否是常量引用

2.返回型別是否是類的引用

3.是否釋放自身已佔的記憶體

4.是否考慮自賦值情況

對於異常安全性,普通賦值運算子定義如下,存在m_data的記憶體不足以new乙個新char,將會導致m_data=null

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

else

}

考慮異常,採用如下表示,臨時變數strtemp在離開作用域時將會自動呼叫析構函式

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

else

}

補充:

c++ effective條款三,對於其他運算子,更高效的書寫方式如下

class rational;

const rational operator*(const rational &lhs,const rational &rhs);

為什麼要加const,加const表明返回值為不可更改的,就不會出現

rational a,b,c;

(a*b)=c;的暴行

例如只想判斷if(a*b=c),但少寫了乙個=,所以宣告為const可以省下很多麻煩

Python運算子 賦值運算子

賦值運算子與算數運算子有這個密不可分的關係,可以理解成是算數運算子在某種特定情況下的一種簡寫賦值運算子 說明舉例 展開形式 對應算數運算子寫法 簡單賦值運算子 x y x y 加賦值 也讀加等於 x y x x y 加賦值 也讀減等於 x y x x y 乘賦值 也讀乘等於 x y x x y 除賦...

賦值運算子

賦值運算子函式 include stdafx.h include class cmystring cmystring cmystring char pdata else cmystring cmystring const cmystring str cmystring cmystring cmyst...

賦值運算子

a 等 b 叫做賦值運算子,也是最基本的賦值運算子 int x 10 把10賦值給int型別的變數x。c 擴充套件的賦值運算子的特點 隱含了自動強制轉換。面試題 short s 1 s s 1 short s 1 s 1 請問上面的 哪個有問題?3 比較運算子 a b 無論運算子兩端簡單還是複雜最終...