函数模板是通用的函数描述,也就是说,它们使用泛型来定义函数,其中的泛型可用具体的类型(如int或double)替换。
例如如果定义一个2个数交换值的函数,如果2个数是int,那就需要定义一个Swap(int i,int j)的函数,那如果2个数是double类型的就需要再定义一个Swap(double i,double j)的函数,那还有其他类型的话还要继续定义,其实实现的方式都一样,只是类型不同,这就需要函数模板。
template <typename T>
void Swap(T &a,T &b);
int main(){
int i = 10;
int j = 20;
Swap(i,j);
cout << i << "," << j << endl;
double x = 10.1;
double y = 10.2;
Swap(x,y);
cout << x << "," << y << endl;
return 0;
}
template <typename T>
void Swap(T &a,T &b){
T temp;
temp = a;
a = b;
b = temp;
}
1、使用template <typename T> 或者template <class T>
T可以是任意有效的变量名,使用T只是比较简单。
2、函数中需要的类型改成T。如void Swap(T &a,T &b);
3、函数的实现中的变量类型也改成T。
注意,函数模板不能缩短可执行程序。最终仍将由两个独立的函数定义(int类型和double类型),就像以手工方式定义了这些函数一样。最终的代码不包含任何模板,而只包含了为程序生成的实际函数。使用模板的好处是,它使生成多个函数定义更简单、更可靠。
标签:函数,int,double,c++,Swap,模板,定义 From: https://blog.51cto.com/u_3764469/6086650