0
点赞
收藏
分享

微信扫一扫

c++函数模板

函数模板是通用的函数描述,也就是说,它们使用泛型来定义函数,其中的泛型可用具体的类型(如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类型),就像以手工方式定义了这些函数一样。最终的代码不包含任何模板,而只包含了为程序生成的实际函数。使用模板的好处是,它使生成多个函数定义更简单、更可靠。

举报

相关推荐

0 条评论