1、函数模板
泛型编程思想应用在函数上,就产生了函数模板。
(1)利用模板设计不同参数求差值的函数。
template <typename T>
T Sub(T tv1, T tv2)
{
return tv1-tv2;
}
总结:
(a)函数模板的定义以template关键字开始的;
(b)template <typename T>与template <class T>等价,class可以取代typename,但class没有“类”的含义,只是语法等价;
(c)可变参数T称为: 类型 模板参数,代表的是一个类型,可以换成任意其它标识符U、V、W等;
(d)用尖括号<...>包围;
(e)模板函数的参数的接收类型需要支持该函数的操作才可用:如果给的是string类型的变量,由于该类型变量不支持减法操作,因此不支持该类型。
(2)实例化
实例化:在编译时,用具体的“类型”代替类型模板参数的过程,也叫代码生成器。
int subx=Sub(1,2);
合法
double suby=Sub(2.3,5.1);
合法
int subx=Sub(3,5.9);