更新时间:2018-11-09 来源:黑马程序员技术社区 浏览量:
在C++技术里面,都接触过函数,那么遇到函数模板应该要怎样去做呢?请看下文
函数模板是通用的函数描述,通过将类型作为参数传递给模板,可使编译器生成该类型的函数。 
 当函数形式完全相同,只是参数类型不同时,可以使用函数模型,这样可以极大的减少代码量,便于维护。
 函数模板声明形式如下:
template<typename 数据类型参数标识符>
< 返回类型><函数名>(参数表)
 {
     函数体
}
其中template和typename是固定的标识符,不可更好。为了使用简单,数据类型参数标识符常会使用T。
 例1:
#include<iostream>
 using namespace std;
 template<typename T>
 void Swap(T &a,T &b)
 {
     T c;
     c=a;
     a=b;
     b=c;
 } 
 int main()
 {
     int a=5;
     int b=3;
     Swap(a,b);
     cout<<"a:"<<a<<" "<<"b:"<<b<<endl;
     double c=1.2;
     double d=3.6;
     Swap(c,d);
     cout<<"c:"<<c<<" "<<"d:"<<d<<endl;
     system("pause");
 }
结果如下:
a:3 b:5
 c:3.6 d:1.2
请按任意键继续. . .
例2:
#include<iostream>
 using namespace std;
 template<typename T1,typename T2>
 T2 Add(T1 a,T2 b)
 {
     T2 c;
     c = a+b;
     return c;
 } 
 int main()
 {
     int a=5;
     double b=1.2;
     cout<<Add(a,b)<<endl;
     double c=1.2;
     int d = 5;
     cout<<Add(c,d)<<endl;
     system("pause");
 }
结果如下:
6.2
 6
请按任意键继续. . .
可以看到,通过函数模板,函数会自动根据输入参数的类型进行转换,这样可以极大减少代码量。
作者:黑马程序员C/C++培训学院
首发:http://web.itheima.com/
1024首播|39岁程序员逆袭记:不被年龄定义,AI浪潮里再迎春天
2025-10-241024程序员节丨10年同行,致敬用代码改变世界的你
2025-10-24【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19