11 運算子過載的基本概念

2021-10-06 12:57:01 字數 955 閱讀 4983

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 ...