運算子過載是c++的重要組成部分,它可以讓程式更加的簡單易懂,簡單的運算子使用可以使複雜函式的理解更直觀。
對於普通物件來說我們很自然的會頻繁使用算數運算子讓他們參與計算,但是對於自定義類的物件來說,我們是無論如何也不能阻止寫出像下面的**一樣的程式來的。
例子如下:
class test
intmain()
當然這樣的**是不能夠通過編譯的,c++對自定類的算術運算部分保留給了程式設計師,這也是符合c++靈活特性的。
在c++中要想實現這樣的運算就必須自定義運算子過載函式,讓它來完整具體工作。
在這裡要提醒讀者的是,自定義類的運算子過載函式也是函式,你過載的一切運算子不會因為是你自己定義的就改變其運算的優先順序,自定義運算子的運算優先順序同樣遵循與內部運算子一樣的順序。
除此之外,c++也規定了一些運算子不能夠自定義過載,例如.、::、.*、.->、?:。
下面我們來學習如何過載運算子,運算子過載函式的形式是:
返回型別 operator 運算子符號 (引數說明)
運算子過載函式的使用主要分為兩種形式,一種是作為類的友元函式進行使用,另一種則是作為類的成員函式進行使用。
下面我們先看一下作為類的友元函式使用的例子:
//站點:www.***ev-lab.com
#include
using
namespace std;
class test
friend test operator +(test&,test&);
friend test& operator ++(test&);
public:
int a;
};
test operator +(test& temp1,test& temp2)//+運算子過載函式
test& operator ++(test& temp)//++運算子過載函式
intmain()
{ test a(100);
test c=a+a;
cout
在例子中,我們對於自定義類test來說,過載了加運算子與自動遞增運算子,過載的運算子完成了同型別物件的加運算和遞增運算過程
還有兩篇:http://www.pconline.com.cn/pcedu/empolder/gj/c/0503/581281.html
C 中的運算子過載函式基礎及其值返回狀態
運算子過載是c 的重要組成部分,它可以讓程式更加的簡單易懂,簡單的運算子使用可以使複雜函式的理解更直觀。對於普通物件 來說我們很自然的會頻繁使用算數運算子讓他們參與計算,但是對於自定義類的物件來說,我們是無論如何也不能阻止寫出像下面的 一樣的程式來的 例子如下 c class test int ma...
運算子過載 函式返回值
舉例 include using namespace std class test test operator test temp1,test temp2 test operator test temp int main 結果1 vs2005執行結果 結果2 更改 過載函式為返回值,即test op...
C 運算子過載函式之成員運算子過載函式
5.2.3 成員運算子過載函式 在c 中可以把運算子過載函式定義為某個類的成員函式,稱之為成員運算子過載函式。1.定義成員運算子過載函式的語法形式 1 在類的內部,定義成員運算子過載函式的格式如下 函式型別 operator 運算子 形參表 2 成員運算子過載函式也可以在類中宣告成員函式的原型,在類...