1.模板的作用:
(1)模板是一种参数化的多态工具
(2)所谓参数化的多态性,是指将程序所处理的对象的的类型参数化,使一段程序代码可以用于处理不同类型的对象。
(3)采用模板编程,可以为各种逻辑功能相同而数据类型不同的程序提供一种代码共享的机制。
2.代码复用的几种方法特点
1.用已有的方法解决
(1)宏替换
(2)函数重载
(3)使用函数模板
3.函数模板的概述
函数模板的一般说明形式如下:
template <模板形参表>
返回值类型 函数体(模板函数形参表)
{
}
注意:函数模板的定义以关键字template开头
template之后<>中是函数模板的参数列表
函数模板的参数是类型参数,其类型为class或typename
template<class T>
template<class T1,class T2>
4.函数模板的使用
使用函数模板的方法是先说明函数模板,然后实例化成相应的模板函数进行调用执行
注意:函数模板不是函数,不能被执行
置换代码中类型参数得到模板函数
实例化后的模板函数是真正的函数,可以被执行。
函数模板 ->实例化->模板函数
模板被编译了两次
普通函数只需要声明,即可数理编译,而模板的编译需要查看模板的定义
5.函数模板的特例化
解决专有类型,传指针时模板处理不起来,要用模板特例化
6.重载函数模板
当有模板与自己的模板时,优先调用自己的模板