C++除可重載函數之後,還允許定義已有的運算符,這樣通過運算符重載可像處理數據使用它們。
先來個代碼
編譯將提示一個錯誤:
--------------------Configuration: demo1 - Win32 Debug--------------------
Compiling...
demo.cpp
E:\CCDEMO\demo1\demo.cpp(19) : error C2676: binary '++' : 'class num' does not define this operator or a conversion to a type acceptable to the predefined operator 此處提示沒有該類沒有重載++這個運算符;
執行 cl.exe 時出錯.
demo1.exe - 1 error(s), 0 warning(s)
將代碼處:i++ 注釋,編譯即成功;如何解決以上問題,我們可以使用一函數解決,看以下代碼:
#include<iostream> using namespace std; class num { public: num(){n=1;} ~num(){} int get() const{return n;} void set(int x){n=x;} void add(){++n;} private: int n; }; int main() { num i; cout<<i.get()<<endl; i.add(); cout<<i.get()<<endl; //i++; return 0; }
以上能解決問題,但還沒有現實我們所說的C++重載運算符;以下使用運算符重載:
好了。編譯一下,沒有問題。這就是最簡單的運算符重載。