詳解C++函數(shù)類型與重載函數(shù)
1.首先對重載函數(shù),明確函數(shù)的返回類型不能決定重載函數(shù)的類別,即
int F(int ,int) ;//一個返回 int 類型的函數(shù) void F(int ,int);//一個無返回值的函數(shù) //兩者形參列表相同,返回值類型不同,但兩者不構(gòu)成重載函數(shù)
2.注意形參列表中的默認(rèn)值,使用含默認(rèn)參數(shù)的重載函數(shù)時可能會產(chǎn)生二義性。例:
int a = 0; int Max(int,int); int Max(int,int,int = 0); //則對Max(3,5)的調(diào)用會報(bào)錯 a = Max(3,5); //錯誤
另外,對默認(rèn)參數(shù),應(yīng)該在函數(shù)名第一次給出的時候指定,通常在函數(shù)原型中。若已在函數(shù)原型中指定默認(rèn)參數(shù),則函數(shù)定義時不能重復(fù)給出。
問題:
在一道題中我看到了這樣一個問題,簡述起來就是讓你調(diào)用一個值傳遞的重載函數(shù)和一個引用傳遞的重載函數(shù),
#include<iostream> using namespace std; void F(int &a, int &b) { a = a + b; cout << a<<endl; } int F(int a, int b,) { return a + b; } int main(){ cout<<F(a,b); F(a,b); }
此時調(diào)用兩個F函數(shù)就會報(bào)錯,那如何改變函數(shù)類型來避免函數(shù)調(diào)用不明確呢?
我是這樣做的,
#include<iostream> using namespace std; void F(int &a, int &b) { a = a + b; cout << a<<endl; } int F(int a, int b,int c) { return a + b; } int main(){ int a = 10; int b = 20; cout << F(a, b,1)<<endl; F(a,b); }
即通過一個無用變量來避免類型相似。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C++11中std::function基礎(chǔ)用法詳解
std::function是C++11標(biāo)準(zhǔn)庫中提供的一種可調(diào)用對象的通用類型,它可以存儲任意可調(diào)用對象,本文就來和大家講講它的基礎(chǔ)用法,希望對大家有所幫助2023-04-04C++多重繼承引發(fā)的重復(fù)調(diào)用問題與解決方法
這篇文章主要介紹了C++多重繼承引發(fā)的重復(fù)調(diào)用問題與解決方法,結(jié)合具體實(shí)例形式分析了C++多重調(diào)用中的重復(fù)調(diào)用問題及相應(yīng)的解決方法,需要的朋友可以參考下2018-05-05C/C++產(chǎn)生隨機(jī)數(shù)函數(shù)簡單介紹
這篇文章主要為大家詳細(xì)介紹了C/C++產(chǎn)生隨機(jī)數(shù)函數(shù)的實(shí)現(xiàn)方法,如何使用C/C++產(chǎn)生隨機(jī)數(shù)函數(shù),感興趣的小伙伴們可以參考一下2016-04-04C語言實(shí)現(xiàn)簡單員工工資管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單員工工資管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03