運算符有單目運算符和雙目運算符,分别跟一個操作數和兩個操作數。在c++裡面無論是那種他們都可以操作多種類型的的變量,例如+運算符a+b,a,b既可以是整型,也可以是浮點型(float),編譯器有一張符号表儲存了a,b的類型(可以自己去看編譯原理),當編譯器在翻譯a+b時根據其類型調用相應子程式處理。有時候我們覺得a,b的類型不夠,這個時候,我們就可以重載+,比如我們想實作 classA+classB,我們就可以重載+,傳回值 operator+(classA a,classB b){
要幹的事.....
return 傳回值
}
具體幹什麼以及傳回值自己定義。下面給出了輸出符号《是怎麼重載的
#include "stdafx.h"
#include<iostream>
using namespace std;
class g{
public:
int m;
};
//h是《的左操作數,o是《的右操作數
ostream& operator<<(g h,ostream& o){
return o<<h.m;
} ;
int _tmain(int argc, _TCHAR* argv[])
{
g k;
k.m=100;
k<<cout<<endl;
return 0;
}