一、操作符重載:
1、我們先來看一個問題實現(xiàn),下面的復(fù)數(shù)解決方案是否可行,復(fù)數(shù)大家應(yīng)該都不陌生(分為實部和虛部):
代碼版本一:
運行結(jié)果:
這里通過Add函數(shù)可以解決Complex對象相加的問題,但是在我們數(shù)學(xué)運算里面就是直接實部加實部,虛部加虛部,和正常的實數(shù)相加一樣,所以說,為什么不直接這樣操作呢,這就涉及到符號"+"的問題。
2、操作重載符的引出
c++中的重載能夠擴展操作符的功能
操作符的重載以函數(shù)的方式進行
本質(zhì):用特殊形式的函數(shù)擴展操作符的功能
3、操作重載符的語法:
通過operator關(guān)鍵字可以定義特殊的函數(shù)
operator的本質(zhì)是通過函數(shù)重載操作符
語法格式:
代碼版本二:
輸出結(jié)果:
4、再次改進代碼:
可以將操作符重載函數(shù)定義成為類的成員函數(shù)(前面我們學(xué)過,友元現(xiàn)代軟件開發(fā)不允許):
比全局操作符重載函數(shù)少一個參數(shù)(左操作數(shù),成員函數(shù)中隱藏的 this 參數(shù)可以充當(dāng)左操作數(shù)的角色)
不需要依賴友元就可以完成操作符重載
編譯器優(yōu)先在成員函數(shù)中尋找操作符重載(一旦在成員函數(shù)中找到,就不會去全局找)
二、小結(jié):
操作符重載是c++的強大特性之一
操作符重載的本質(zhì)是通過函數(shù)擴展操作符的功能
operator 關(guān)鍵字是實現(xiàn)操作符重載的關(guān)鍵
操作符重載遵循相同的函數(shù)重載規(guī)則
全局函數(shù)和成員函數(shù)都可以實現(xiàn)對操作符的重載
-
可編程邏輯
+關(guān)注
關(guān)注
7文章
526瀏覽量
45184 -
C++
+關(guān)注
關(guān)注
22文章
2120瀏覽量
76444
發(fā)布評論請先 登錄
主流的 MCU 開發(fā)語言為什么是 C 而不是 C++?

C++學(xué)到什么程度可以找工作?
重載式編碼器鋼鐵行業(yè)實際應(yīng)用,一起看看吧!

基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的C++公共基礎(chǔ)類庫案例:ThreadPoll

Spire.XLS for C++組件說明

EE-112:模擬C++中的類實現(xiàn)

同樣是函數(shù),在C和C++中有什么區(qū)別
邏輯異或運算符在Python中的用法
C7000 C/C++優(yōu)化指南用戶手冊

TMS320C6000優(yōu)化C/C++編譯器v8.3.x

TMS320C28x優(yōu)化C/C++編譯器v22.6.0.LTS

評論