運算符重載

1,運算符重載:重新解釋對象間運算的運算符含義。

注意:重載後的運算符只能應用於對象間的運算。

運算符重載主要有兩種形式:(1),成員函數形式,(2),友元函數形式。除這兩中形式外,運算符還可以重載爲一般的函數形式,但這種方法一般不常用。,

2,C++中不可重載的運算符:

(1). 成員訪問運算符

(2).* 成員指針運算符

(3):: 限定運算符

(4)?: 三目運算符

(5)sizeof 類型空間長度測試運算符

3,運算符重載的定義形式

(1).成員函數重載運算符的一般形式

<返回類型> <類名> :: operator <重載的運算符>(參數列表)

{

  函數體;

}

注意:?= 、[ ] 、( ) 、-> 以及所有類型轉換運算符只能作爲成員函數重載。如果第一操作數不是同類對象,而是其他數據類型,則只能作爲非成員成員函數重載。

(2),友元函數重載運算符的一般形式

friend <返回類型> operator <重載運算符> (參數列表)

{

 函數體;

}

注意:友元函數不能重載 ?= 、[ ] 、( ) 、->

4,

(1),用類的成員函數重載運算符時,由於有this傳遞參數(對象),對於單目運算符,實現它的成員函數不能有參數,對於雙目運算符,只能有一個參數。

(2),使用友元運算符函數比成員函數靈活,如果重載運算符左邊的參數是非類的對象,則只能使用友元函數重載。

注意:

(1),對於大對數雙目運算符來說,用友元函數重載運算符比成員函數適應性強。

(2),雖然賦值運算符是雙目運算符,但爲防止出現二義性,賦值運算符應重載爲成員函數。

(3),單目運算符 ++ 、— 、以及下標運算符 () 、[ ] 、等一般應重載爲成員函數。

(4),輸入運算符 >> 和輸出運算符 << 必須重載爲友元函數。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章