運算符的重載其實是函數的重載,在實際過程當中,首先把指定的運算表達式轉化爲對運算符函數的調用,將運算符對象轉化爲運算符函數的實參,而後根據實參的類型肯定須要調用的函數,這個過程在編譯的過程當中完成。函數
不能重載的運算符指針
「.」 類屬關係運算符對象
「.*」成員指針運算符作用域
「::」做用域分辨符編譯
「?:」三目運算符stream
兩種運算符重載方式:im
1.重載爲類的非靜態成員函數img
2.重載爲非成員函數類型轉換
區別:運算符的重載形式各有千秋。成員函數的重載方式更加方便,但有時處於如下緣由,須要使用非成員函數的重載方式co
1.要重載的操做符的第一個操做數不是能夠更改的類型
例如:Complex是一個複數類
ostream & operator << (ostream &out, const Complex &c)
{
out << "(c.real << "," << c.img <<")";
return out;//用來支持連續輸出
}
2.以非成員函數的形式重載,支持更加靈活的類型轉換。