1.函数模板

关键字:template、typename、class
这里的class不是表示类,而是表示数据类型

1.1类型作为模板参数

c++ 模板函数、模板类
class后的T表示为一种数据类型,当传入类型参数时,系统自动实例化;
可以使用typename替换class,效果一样;
T max(T a, T b) 称为函数模板;
通过函数模板生成的函数叫模板函数,如下:
c++ 模板函数、模板类

1.2变量作为模板参数

c++ 模板函数、模板类

1.3多参数函数模板

c++ 模板函数、模板类

c++ 模板函数、模板类

函数模板之间也可能形成重载(但是,必须生成模板函数才构成重载关系!!):
c++ 模板函数、模板类

2.类模板

c++ 模板函数、模板类

上面是类内进行成员函数的定义,在类外定义则需要注意格式:添加模板头、以及<类型参数>

c++ 模板函数、模板类

类模板实例化才会产生实际的代码,使用如下:

c++ 模板函数、模板类

特别注意:类模板声明和定义要写在一个文件内,不支持分离编译!
(待验证)

相关文章: