c++預定義的運算子,只能用於基本資料型別的運算:整型,實型,字元型,邏輯型。不能用於物件的運算,有時候又需要物件之間的運算。】
在數學上,兩個符數可以直接進行±等運算。但是在c++中,直接將+或者-用於複數物件是不允許的。
有時候希望,讓物件也能通過運算子進行計算。這樣**更加簡介,更加易於理解。
例如;complex_a和complex_b是兩個複數物件;
求兩個複數的和,希望能直接寫:
complex_a+complex_b運算子過載,就是對已有的運算子賦予多重的含義,使同一運算子作用域不同型別的資料時導致不同型別黨的行為。
運算子過載的目的是:擴充套件c++中提供的運算子的適用範圍,使之能作用於物件。
同乙個運算子,對不同型別的運算元,所發生的行為不同。
例如:complex_a+complex_b 生成新的複數物件。
運算子過載的實質就是函式過載。
可以過載為普通函式,也可以過載為成員函式。
把含運算子的表示式轉換為運算子函式的呼叫。
把運算子的運算元轉換成運算子函式的引數。
運算子被多次過載時,根據實參的型別決定呼叫哪個運算子函式。
形式:返回值型別 operator 運算子(形參表)
例子:
class
complex
complex operator-(
const complex &c);}
;complex operator+(
const complex &a,
const complex &b)
complex complex::
operator-(
const complex &c)
//過載為成員函式時,引數個數為運算子目數減一
//過載為普通函式時,引數個數為運算子目數
C 運算子過載的基本概念
c 預定義的運算子,只能用於基本資料型別的運算 整型 實型 字元型 邏輯型等等,且不能用於物件的運算。但是我們有時候又很需要在物件之間能用運算子,那麼這時我們就要過載運算子,使得運算子能用於物件之間的運算。比如,在數學上,兩個複數可以直接進行 等運算,但在c 中,直接將 或 用於複數物件是不允許的。...
c 運算子過載以及一些基本概念
c primer第四版435 1.賦值 下標 呼叫 成員訪問箭頭 等操作符必須定義為成員,定義為非成員時,編譯器報錯 2.像賦值一樣,符合賦值操作符通常應定義為類的成員,但是定義為非成員的復合賦值操作符時不會出現編譯錯誤 3.改變物件狀態或給定型別緊密聯絡的其他一些操作符,如自增,自減和解引用,通常...
4 1 C 運算子基本概念
目錄4.1.2 優先順序 結合律與求值順序 一些運算子指定了求值順序 再述求值順序 操作符可視為乙個函式,用引數,返回值來分析它 如cout 操作符 操作符的返回值可以分為左值 lvalue 和右值 rvalue 對指定的類重新定義某些操作符的操作,但無法改變其運算物件的個數,優先順序和結合律 c ...