一、操作符重載:
1、我們先來看一個問題實現,下面的復數解決方案是否可行,復數大家應該都不陌生(分為實部和虛部):
代碼版本一:
運行結果:
這里通過Add函數可以解決Complex對象相加的問題,但是在我們數學運算里面就是直接實部加實部,虛部加虛部,和正常的實數相加一樣,所以說,為什么不直接這樣操作呢,這就涉及到符號"+"的問題。
2、操作重載符的引出
c++中的重載能夠擴展操作符的功能
操作符的重載以函數的方式進行
本質:用特殊形式的函數擴展操作符的功能
3、操作重載符的語法:
通過operator關鍵字可以定義特殊的函數
operator的本質是通過函數重載操作符
語法格式:
代碼版本二:
輸出結果:
4、再次改進代碼:
可以將操作符重載函數定義成為類的成員函數(前面我們學過,友元現代軟件開發不允許):
比全局操作符重載函數少一個參數(左操作數,成員函數中隱藏的 this 參數可以充當左操作數的角色)
不需要依賴友元就可以完成操作符重載
編譯器優先在成員函數中尋找操作符重載(一旦在成員函數中找到,就不會去全局找)
二、小結:
操作符重載是c++的強大特性之一
操作符重載的本質是通過函數擴展操作符的功能
operator 關鍵字是實現操作符重載的關鍵
操作符重載遵循相同的函數重載規則
全局函數和成員函數都可以實現對操作符的重載
-
可編程邏輯
+關注
關注
7文章
526瀏覽量
45377 -
C++
+關注
關注
22文章
2123瀏覽量
77021
發布評論請先 登錄
keil實現c與c++混合編程
C語言指針p、*p、&p、*&p、&*p分別代表什么
如何在TensorFlow Lite Micro中添加自定義操作符(1)
重載型編碼器:工業巨擘的“智慧之眼”
Amphenol ARB Series? 矩形重載連接器:工業應用的理想之選
C語言和C++之間的區別是什么
C/C++條件編譯
RISC-V的工具鏈GCC內聯匯編
主流的 MCU 開發語言為什么是 C 而不是 C++?
C++學到什么程度可以找工作?
重載式編碼器鋼鐵行業實際應用,一起看看吧!
C++之操作符重載學習的總結
評論