運算子過載就是給運算子賦予乙個新的含義,可以在不同的情況下進行操作;
class person
//方法2
person operator+(person& p)//關鍵字operator
此時,你在main函式中定義person的兩個類物件p1和p2,(p1+p2)的含義與p1.add(p2)的含義是一樣的;
運算子過載的原理:
我們在上面的類過載了運算子+;而該過載只對person類有效當執行c3 = c1 + c2語句時,編譯器檢測到+號左邊(+號具有左結合性,所以先檢測左邊)是乙個 person物件,就會呼叫成員函式operator+(),也就是轉換為下面的形式:
p1.operator+(p2);
p1 是要呼叫函式的物件,p2 是函式的實參。
需要注意的是,運算子過載函式不僅可以作為類的成員函式,還可以作為全域性函式例項:實現int型和person類相加
person operator+(person& p,int a)
此時再在main函式定義乙個a=2;
(p1+a)後返回的是person型,結果實現了運算子過載函式操作的結果
運算子函式過載
1.運算子的本質是什麼?把運算子看作函式名,通過函式過載的方式為同乙個運算子實現不同規則的運算,故運算子過載的本質就是函式過載。2.怎樣進行運算子過載?運算子過載的函式名是由關鍵字operate和其後重要的運算子符號構成。運算子函式定義的一般格式如下 資料型別 operate 運算子符號 引數列表 ...
C 運算子過載函式之成員運算子過載函式
5.2.3 成員運算子過載函式 在c 中可以把運算子過載函式定義為某個類的成員函式,稱之為成員運算子過載函式。1.定義成員運算子過載函式的語法形式 1 在類的內部,定義成員運算子過載函式的格式如下 函式型別 operator 運算子 形參表 2 成員運算子過載函式也可以在類中宣告成員函式的原型,在類...
運算子過載 賦值運算子的過載
有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個int型別變數賦值給乙個complex物件,或把乙個 char 型別的字串賦值給乙個字串物件,此時就需要過載賦值運算子 注意 賦值運算子 只能過載為成員函式 賦值運算子過載例項示例 include include using namespace ...