c++之重載函數(一)

(一)概念:什麼是重載

1 所謂重載,就是重新賦予新的含義。函數重載就是對一個已有的函數賦予新的含義,使之實現新功能,因此,一個函數名就可以用來代表不同功能的函數,也就是”一名多用”。(運算符重載的本質是一個函數)


2 運算符重載的限制:

只需記住下面幾個特殊的運算符不能重載即可:  1 .(點) 2.::(域解析符) 3   .*(對象選擇符) 4  ?:(條件運算符) 5. sizeof

重載運算符函數可以對運算符做出新的解釋,但原有語義基本不變:

(1)重載不能改變運算符的優先級和結合性

(2)不改變運算符所需要的操作數

(3)不能創建新的運算符


(二)運算符重載實現的倆種方法:

1.成員函數  2.友元函數(全局函數實現)

1)運算符函數可以重載爲成員函數和友元函數

2)關鍵區別在於成員函數有this指針, 而友元函數沒有this指針。

3)不管是成員函數,還是友元函數,運算符的使用方法相同,但參數傳遞的方式,實現代碼不同,應用場合也不同

4)如果倆個參數,左操作數在類的內部無法實現時,只能聲明爲友元函數實現(全局函數)



3二元運算符

//通過類成員函數完成-操作符重載
//函數聲明 Complex operator-(Complex &c2)
//函數調用分析
//用類成員函數實現-運算符重載
  Complex c4 = c1 - c2;
  c4.printCom();
  //c1.operator-(c2);

4一元運算符



5前置和後置++總結:




6.全局函數、類成員函數方法實現運算符重載步驟:
      1)要承認操作符重載是一個函數,寫出函數名稱operator+ () 
      2)根據操作數,寫出函數參數 
      3)根據業務,完善函數返回值(看函數是返回引用 還是指針 元素),及實現函數業務


7.成員函數與友元函數選擇方法:

      1)當無法修改左操作數的類時,使用全局函數進行重載
      2) =, [], ()和->操作符只能通過成員函數進行重載



(三)總結

1.操作符重載是C++的強大特性之一
2.操作符重載的本質是通過函數擴展操作符的語義
3.operator關鍵字是操作符重載的關鍵
4.friend關鍵字可以對函數或類開發訪問權限
5.操作符重載遵循函數重載的規則
6.操作符重載可以直接使用類的成員函數實現
7.=, [], ()和->操作符只能通過成員函數進行重載
8.++操作符通過一個int參數進行前置與後置的重載
9.C++中不要重載&&和||操作符

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