2023年12月11日發(fā)(作者:德治與法治的關系)

重載函數(shù)的二義性
重載函數(shù)的定義
1.函數(shù)名稱相同
2.參數(shù)列表不同
3.與返回值無關
編譯器是如何匹配要使用哪個函數(shù)的
1.選定候選函數(shù)集:被調(diào)用函數(shù)名相同;聲明在調(diào)用點可見
2.選定可行函數(shù)集:候選函數(shù)的參數(shù)列表數(shù)量相同、各個參數(shù)類型相同或可以進行類型轉(zhuǎn)換
3.選出最佳匹配函數(shù):找出最合適的重載函數(shù)
函數(shù)重載的二義性是指在編譯過程中無法找出最匹配的函數(shù),或者說編譯器在函數(shù)匹配之后還是有很多函數(shù)滿足要求,無法確定執(zhí)行哪一個而引發(fā)的錯誤
例一:int get(); 和 int get(int a = 0) 這類函數(shù)中,不給參數(shù)和有默認參數(shù)會造成歧義
例二:int get(int m) 和 float get(float m) 這類函數(shù)中,參數(shù)隱式轉(zhuǎn)換(double既可以隱式轉(zhuǎn)換為long,也可以是int),無法確定哪一個更加匹配
int get(int m) 和 int get(int& m) 這類函數(shù)中,傳值和引用都可以完成調(diào)用,只不過傳值有拷貝開銷,而引用沒有拷貝開銷
本文發(fā)布于:2023-12-11 08:29:33,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/1702254573118031.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:重載函數(shù)的二義性.doc
本文 PDF 下載地址:重載函數(shù)的二義性.pdf
| 留言與評論(共有 0 條評論) |