理由
模板泛型编程是C++的一个高级特性,抽象性强,用得好可以简化代码,将重复代码归一化,添加新功能时不用开发代码,但是模板又是C++比较难掌握的一个特性,尤其在工作中可以用的得心应手更难,因此需要学习模板,把忘记的知识捡起来
基础
模板编程与面向的对象编程在运行时确定对象类型不同,它在编译时就能确定类(对象)类型
一般函数在调用时不必知道函数定义,只需函数声明就行,因此我们一般将不同的类定义和函数声明放在头文件中,定义放在源文件中,但是模板不同,它需要知道函数模板或者类模板成员函数的定义,因此模板的头文件一般包含声明和定义。
函数模板
模板参数:template T就是模板参数
实例化:编译器根据函数实参推断出模板实参类型,生成一个新的实例的过程