運算子過載使得使用者自定義的資料以一種更簡潔的方式工作。
比如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資料連線在一起,難道加號應用於不同的場景,編譯器就會自...