1、C++中泛型编程的概念:
编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。
模板分为函数模板和类模板
2、函数模板
函数模板的概念
函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本
函数模板的格式:
template<typename T1, typename T2,......,typename Tn>返回值类型 函数名(列表参数){ }
template <typename T>
void Swap(T& a, T& b)
{
T tem = a;
a = b;
b = tem;
}
注意:typename是用来定义模板参数关键字,也可以使用class (切记:不能用struct代替class);
函数模板是一个蓝图,它本身并不是函数,是编译器用使用方式产生特定具体类型函数的模具。
其实模板就是将我们本应该重复做的事交给了编译器。
在编译器编译阶段,对于模板函数的使用,编译器需要根据