模板是c++实现代码重用的一种有效机制,模板通过把类型定义为参数,提高了代码的可重用性。
1.函数模板
- 在c++中,函数模版以
template<class ElementTpye>
或者template<typename ElementTpye>
的形式给出,ElementType为形式参数,模板的每个形式参数都要在函数参数列表中至少出现一次。
int add(int a, int b)
{
return a + b;
}
double add2(double a, double b)
{
return a + b;
}
先看上面两个函数,作用都是为了实现两个数相加,但是参数和返回的类型不同,除此之外,函数实现部分并没用差别,因此我们可以采用函数模板来将两个函数抽象成一个函数;
#include <iostream>
using namespace std;
template<class ElementTpye>
ElementTpye add(ElementTpye a, ElementTpye b)
{
return a + b;
}
int main()
{
int a = 1, b = 2;
double c = 2.0, d = 3.1;
cout << add(a, b) << endl; //输出3
cout << add(c, d) << endl; //输出5.1
return 0;
}
函数模板实例化时直接将函数add的形式参数替换为变量a和b的int类型。