C 中運算子過載

2021-09-23 20:23:18 字數 877 閱讀 6700

運算子過載使得使用者自定義的資料以一種更簡潔的方式工作。

比如int x,y; 可以為y=x+y;而 my c1,c2;如果想使得兩個自定義的物件相加,以前只能調

用函式計算它們的和。而現在只要定義了運算子過載就能實現c1=c1+c2.

所謂過載,就是重新賦予新的含義。函式過載就是對乙個已有的函式賦予新的含義,

使之實現新功能,因此,乙個函式名就可以用來代表不同功能的函式,也就是「一名多

用」。運算子也可以過載。實際上,我們已經在不知不覺之中使用了運算子過載。例如,大家

都已習慣於用加法運算子」+」對整數、單精度數和雙精度數進行加法運算,如 5+8, 5.8

+3.67等,其實計算機對整數、單精度數和雙精度數的加法操作過程是很不相同的, 但

由於 c++

已經對運算子」+」進行了過載,所以就能適用於 int, float, double 型別的運算。

運算子過載的本質是乙個函式

例如

class complex

public:

void printcom()

private:

};/*

complex myadd(complex &c1, complex &c2)

*/complex operator+(complex &c1, complex &c2)

void main()

//4 把 complex 類變成私有屬性

//友元函式的應用場景

//friend complex operator+(complex &c1, complex &c2);

cout<<"hello..."

return ;

}

C 中運算子過載

運算子過載可以寫在類的內部,也可以寫成全域性函式形式,其中運算子 在過載時必須宣告為類的成員函式 而運算子 sizeof 不能被過載 演算法運算子的過載不會改變運算子原有的優先順序。例子 include include include using namespace std class comple...

C 運算子過載 過載特殊運算子

賦值運算子用於同類物件間的相互賦值。賦值運算子只能被過載為類的非靜態成員函式,不能過載為友元函式和普通函式。對於使用者自定義的類而言,如果沒有過載賦值運算子,那麼c 編譯器會為該類提供乙個預設的過載賦值運算子成員函式。預設賦值運算子的工作方式是按位對拷,將等到右邊物件的非靜態成員拷貝給等號左邊的物件...

中雙目運算子 運算子過載

這節講c 中的運算子過載。方法有過載,運算子也有過載,設想一下,我們用加號計算int型別的資料,返回的也是int型別,這很正常,因為在數學中加號就是用來計算數字的。但是當我們用加號計算兩個string型別的資料時,給我們返回的則是兩個string資料連線在一起,難道加號應用於不同的場景,編譯器就會自...