1.函数模板
关键字:template、typename、class
这里的class不是表示类,而是表示数据类型
1.1类型作为模板参数
class后的T表示为一种数据类型,当传入类型参数时,系统自动实例化;
可以使用typename替换class,效果一样;
T max(T a, T b) 称为函数模板;
通过函数模板生成的函数叫模板函数,如下:
1.2变量作为模板参数
1.3多参数函数模板
函数模板之间也可能形成重载(但是,必须生成模板函数才构成重载关系!!):
2.类模板
上面是类内进行成员函数的定义,在类外定义则需要注意格式:添加模板头、以及<类型参数>
类模板实例化才会产生实际的代码,使用如下:
特别注意:类模板声明和定义要写在一个文件内,不支持分离编译!
(待验证)