C/C++編程筆記:C++中的函數(shù)重載和浮動
2021-05-11 20:12 作者:C語言編程__Plus | 我要投稿

盡管多態(tài)性在C ++中是一種廣泛使用的現(xiàn)象,但有時可能會非常復雜。例如,考慮以下代碼片段:
似乎對main()中的函數(shù)test的調用將導致輸出“調用了float的函數(shù)”,但是代碼給出了以下錯誤:
在函數(shù)'int main()'中:13:13:錯誤:重載的“ test(double,double)”的調用不明確 測試(3.5,5.6);
在函數(shù)重載中,眾所周知,編譯器決定在重載函數(shù)中需要調用哪個函數(shù)。如果編譯器無法在兩個或多個重載函數(shù)中選擇一個函數(shù),則情況為-“函數(shù)重載中的歧義”。
上面代碼中含糊不清的原因在于,浮動字面量3.5和5.6實際上被編譯器視為double。按照C ++標準,浮點文本(編譯時間常數(shù))作為雙面處理除非由后綴明確指定。由于編譯器無法找到帶有double參數(shù)的函數(shù),因此如果將值從double轉換為int或float會感到困惑。
糾正錯誤:通過提供后綴f,我們可以簡單地告訴編譯器文字是浮點型的,而不是雙精度型。
看下面的代碼:
輸出:
Function with int called
以上就是今天的全部內容了。每日分享小知識,希望對你有幫助~
另外如果你想更好的提升你的編程能力,學好C語言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~
微信公眾號:C語言編程學習基地
分享(源碼、項目實戰(zhàn)視頻、項目筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
