函數重載的使用


函數的重載

1:什么叫函數的重載?

函數的重載指的是兩個以上的函數,具有相同的函數名,但是形參的個數或者類型不同,編譯器根據實參和形參的類型及個數的最佳匹配,自動確定調用哪一個函數,這就是函數的重載。

2:函數的重載有什么用呢?

我們都知道在平時的語言表達中一個動作可以用來表示很多件不同的事情,比如比如一個擦子,可以說擦桌子,擦鞋子等等動作,那么在c++中有沒有與之相類似的功能呢,其實是有的,它就是函數的重載,而這其中的函數就代表了剛才例子中的擦,它可以對不同的數據類型進行處理,這就使我們在編程使可以對不同的功能賦予相同的函數名,編譯時計算機會根據實參的2類型與個數來自動匹配具體的功能。

3:函數重載的實現

例如下面這個例子

#include<iostream>
using namespace std;
int abc(int a, int b)
{
	int sum;
	sum = a + b;
	return sum;
}
float abc(float a, float b)
{
	float sum;
	sum = a + b;
	return sum;
}

在這里我們定義了兩個取合的函數,但是仔細看會發現兩個函數擁有相同的函數名,只不過函數對不同類型的變量在起作用,第一個函數是對整形數值進行求和,第二個則是對浮點數進行求和,這其實就是函數重載的定義那么我們接着看完整的代碼

#include<iostream>
using namespace std;
int abc(int a, int b)
{
	int sum;
	sum = a + b;
	return sum;
}
float abc(float a, float b)
{
	float sum;
	sum = a + b;
	return sum;
}
void main()
{
	int a, b;
	float c, d;
	double sum1,sum2;
	cout << "請輸入abcd的值" << endl;
	cin >> a  >> b  >> c  >> d;
	sum1 = abc(a, b);
	sum2 = abc(c , d);
	cout <<"a和b的合為"<< sum1 << endl<<"c和d的合為" << sum2 << endl;
}

如圖所示,我分別定義了四個整形與浮點數的值並且在調用函數是並沒與對其聲明,而是直接調用了同一個函數名的函數,那么我們看結果

可以看到我們雖然調用函數時是使用的相同函數名但是結果上計算機卻自己對數據類型進行了判斷並且找出來重載函數中最匹配的函數來進行計算,這就是函數的重載

4使用函數重載可以避免什么樣的問題

那么函數的重載可以解決什么問題呢,函數重載因為系統的自動匹配功能所以可以解決多種數據類型的計算,可以用於解決預設函數太多,調用時較為麻煩,不好調用等問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM