運算符重載

運算符的重載其實是函數的重載,在實際過程當中,首先把指定的運算表達式轉化爲對運算符函數的調用,將運算符對象轉化爲運算符函數的實參,而後根據實參的類型肯定須要調用的函數,這個過程在編譯的過程當中完成。函數

不能重載的運算符指針

「.」 類屬關係運算符對象

「.*」成員指針運算符作用域

「::」做用域分辨符編譯

「?:」三目運算符stream

兩種運算符重載方式:im

1.重載爲類的非靜態成員函數img

2.重載爲非成員函數類型轉換

區別:運算符的重載形式各有千秋。成員函數的重載方式更加方便,但有時處於如下緣由,須要使用非成員函數的重載方式co

1.要重載的操做符的第一個操做數不是能夠更改的類型

例如:Complex是一個複數類

ostream & operator << (ostream &out, const Complex &c)

{

  out << "(c.real <<  "," << c.img <<")";

      return out;//用來支持連續輸出

}

2.以非成員函數的形式重載,支持更加靈活的類型轉換。

相關文章
相關標籤/搜索