模板是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类型。