1.模板函數的作用
模板函數的作用是定義一個通用類型的函數,以便更好的複用。
假設你需要實現一個兩個整數相加的c++函數。最簡單最容易想到的是如下方式
//整形加法
int add(int a, int b)
{
return a+b;
}
再寫一個浮點數相加的函數,於是複製上面代碼
//浮點數加法
float add(float a, float b)
{
return a+b;
}
在寫一個整數和浮點數相加的函數???。。。。。
同樣的功能不同的參數卻要學這麼多次,顯然不是一個好的方法,還好有模板函數,只需要定義一個模板函數,然後傳遞不同參數即可。
2.模板函數的定義
template<class T1,class T2,.....,class Tn>//定義用到數據格式T1,T2
Tm functionName(T1 x1,T2 x2,...) //Tm爲定義的返回值的類型
{
//函數體
}
下面用模板函數的方式實現不同類型數的相加
#include<iostream>
using namespace std;
template<class T1, class T2>
T2 abc(T1 a,T2 b) //這裏返回值爲T2類型
{
return a+b;
}
int main(){
int x=1,y=1;
//整形相加
cout<<abc(x,y)<<endl;
float x1=1.10,y1=1.10;
//浮點型相加
cout<<abc(x1,y1)<<endl;
//整形加浮點型
cout<<abc(x,y1)<<endl;
return 0;
}
運行結果圖如下: