詳解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++實(shí)現(xiàn)算法兩個數(shù)字相加詳解
這篇文章主要介紹了C++實(shí)現(xiàn)算法兩個數(shù)字相加詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
visual studio2019的安裝以及使用圖文步驟詳解
這篇文章主要介紹了visual studio2019的安裝以及使用圖文步驟詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
C++訪問std::variant類型數(shù)據(jù)的幾種方式小結(jié)
std::variant是?C++17中引入的一個新的類模板,提供了一種存儲不同類型的值的方式,本文主要介紹了C++訪問std::variant類型數(shù)據(jù)的幾種方式小結(jié),具有一定的參考價值,感興趣的可以了解一下2024-02-02

