模板
1、模板与泛型编程
模板是泛型编程的基础。泛型编程就是一种与类型无关的逻辑代码,是一种复用的方式。
模板可以实现类型的参数化,把类型定义为参数,让一段程序可以处理多种不同类型的对象。
利用模板机制可以显著的减少冗余信息。
(注:对于相同的代码,这里不用宏替换的原因:1、宏定义避开了c++的类型检查机制,在一些情况下会出错,比如不同类型的比较 2、宏可能还会在不该替换的地方替换,造成错误)
1)模板函数和模板类
使用模板函数后,就可以不用一一定义那些功能相同而数据类型不同的函数了,只需要定义一个该功能的函数模板,就可以实现对任何类型的该功能实现了,类也是一样的道理。
函数模板是提供了一类函数的抽象(通用模板);
模板函数是表示某一具体函数;
模板函数在调用时,系统会根据实参的类型,来取代模板中虚拟的类型,从而实现不同函数的功能。
格式:
template <typename 类型参数>
返回类型 函数名 (模板行参数)
{
函数体
}
template <class 类型参数>
class 类名{
类成员声明
};