C 類 運算子過載 2

2021-08-21 14:23:07 字數 1177 閱讀 1050

定義運算子過載的步驟

使用成員函式和友元函式過載二元運算子

使用成員函式和友元函式過載一元運算子

a.我們首先要知道根據運算元的個數將運算子分為一元運算子和二元運算子。

b.定義運算子過載的步驟:

a. 使用友元函式完成二元運算子過載:

函式返回值 operator op (object& a,object& b);
b. 使用成員函式完成二元運算子過載:

函式返回值 類名::operator op(object& b);
c.我們以+ - 運算子為例:

class test

test(int x,int y)

//輸出

void printf()

//使用成員函式實現-號運算子過載

test operator- (test& b)

};//使用友元函式實現+號運算子過載

test operator+ (test& a, test& b)

int main()

一元運算子: ++a,a++,–a,a–。前置就是先執行運算之後使用。後置就是先使用之後執行運算。

a. 使用成員函式過載一元運算子:

//運算元由this指標隱式傳遞

函式返回型別 operator op();

b. 使用友元函式過載一元運算子:

函式返回型別 operator op(object& b);
c. 我們以++a,a++,–a,a–為例

class test

int getx()

//使用成員運算子實現過載前置--運算子

test& operator--()

//使用成員函式實現運算子過載後置++運算子

test operator--(int)

};//使用友元函式過載前置++運算子

test& operator++(test& a)

//使用友元函式過載後置++運算子

//不要返回乙個臨時物件的引用

test operator++(test&a,int)

int main()

運算子過載 類 C

運算子過載 就是對已有的運算子 c 中預定義的運算子 賦予多重的含義,是同乙個運算子作用與不同型別的資料是導致不同型別的行為 實質 函式過載 1 可以過載為普通函式也可以過載為成員函式 2 把含運算子的表示式轉換成對運算子函式的呼叫 3 把運算子的運算元轉換 成 運算子函式的引數 4 運算子被多次過...

c 運算子過載(2)

語法格式 1 類的內部 函式型別 operator 運算子 形參表 2 類中宣告原型 類外定義 class x 函式型別 x operator 運算子 形參表 說明 可以用 return this 返回 當前物件的值 雙目運算子過載 對雙目運算子而言,成員運算子過載函式的形參表中僅有乙個引數,它作為...

運算子類過載

類過載格式 函式型別 operator 運算子名稱 形參表 型引數 使用引數 1 使用 號實現複數相加 不使用類過載 include using namespace std class complex complex double r,double i complex complex add com...