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

Spire.XLS for C++組件說(shuō)明

運(yùn)動(dòng)控制卡周期上報(bào)實(shí)時(shí)數(shù)據(jù)IO狀態(tài)之C++篇

同樣是函數(shù),在C和C++中有什么區(qū)別
邏輯異或運(yùn)算符在Python中的用法
C語(yǔ)言和C++中結(jié)構(gòu)體的區(qū)別
C7000優(yōu)化C/C++編譯器

技術(shù)干貨驛站 ▏解鎖C語(yǔ)言高效編程秘訣:深入解析運(yùn)算符與優(yōu)先級(jí)

鴻蒙原生應(yīng)用元服務(wù)開(kāi)發(fā)-倉(cāng)頡基礎(chǔ)數(shù)據(jù)類(lèi)型整數(shù)類(lèi)型
鴻蒙原生應(yīng)用元服務(wù)開(kāi)發(fā)-倉(cāng)頡基礎(chǔ)數(shù)據(jù)類(lèi)型布爾類(lèi)型
c語(yǔ)言中從左到右結(jié)合怎么看
c語(yǔ)言從右到左的運(yùn)算符有哪些
C++語(yǔ)言基礎(chǔ)知識(shí)
C++中實(shí)現(xiàn)類(lèi)似instanceof的方法

評(píng)論