本次是接著前面的例子使用模板函數(shù)來更方便的計(jì)算三個(gè)數(shù)的最大值践剂。
代碼程序
#include <iostream>
using namespace std;
template <typename T>
T max(T a,T b,T c){
if(b>a)a=b;
if(c>a)a=c;
return a;
}
int main(){
int i1=8,i2=5,i3=6,i;
double d1=56.9,d2=90.765,d3=43.1,d;
long g1=67843,g2=-456,g3=78123,g;
i=max(i1,i2,i3);
d=max(d1,d2,d3);
g=max(g1,g2,g3);
cout <<"i_max="<<i<<endl;
cout <<"d_max="<<d<<endl;
cout <<"g_max="<<g<<endl;
return 0;
}
運(yùn)行結(jié)果
運(yùn)行結(jié)果
代碼解析
1.在c++當(dāng)中使用template關(guān)鍵詞來定義模板函數(shù)
template <typename T>
template的意思是模板鬼譬,typename是類型名,后面的T是一個(gè)類型參數(shù)逊脯,當(dāng)然也可以是其他的字母优质,這里使用T的目標(biāo)是為了表示類型type的意思。
2.編譯系統(tǒng)會(huì)根據(jù)函數(shù)名 max與模板函數(shù)max進(jìn)行匹配,將實(shí)參類型取代模板當(dāng)中的T巩螃,這樣就實(shí)現(xiàn)了后面的使用int代表T使用double代表T或者使用long代表T演怎。
3.模板函數(shù)適用于參數(shù)數(shù)量相同但是類型不相同的情況。如果參數(shù)數(shù)量不相同就不可以使用模板函數(shù)了避乏。