概念:
编写不依赖具体数据类型的程序
目的:将程序尽可能通用,将算法从数据结构中抽象出来,成为通用算法
应用:C++中模板为泛型程序设计提供了基础
STL(标准模板库)是泛型程序设计的例子
模板
模板是一种用不确定类型参数来产生一系列和类的机制
通过模板我们可以产生类和函数的集合,使他们操作不同的数据类型,从而避免为每一种数据类型单独产生一个函数和类
分类:函数模板 类模板
工作方式:模板只是说明,需要实例化之后才能执行和使用
函数模板
定义:函数模板使用和普通函数一样,但它的类型可以通过参数来传递,在函数定义时可以不指明具体的数据类型
当发生函数调用时,编译器开根据传入的实参自动推断数据类型
语法:
template 模板参数表
返回值类型 函数名(参数表)
{函数体}
template----函数模板定义关键字
模板参数表----用来定义函数参数的类型,参数类型有一个或多个,用逗号隔开,不能为空
模板参数常用形式:class ,typename