所谓模板函数,实际上是建立一个通用函数,其函数返回类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。在调用函数时系统会根据实参的类型(模板实参)来取代模板中虚拟类型从而实现了不同函数的功能。
1 | 函数模板的声明格式如下: |
说明:
(1)在函数模板中允许使用多个类型参数。但是应当注意template定义部分的每个类型参数类型必须有关键字typename(或class)。
1 |
|
(2)在template语句与函数模板定义语句之间不允许有别的语句。
(3)同一般函数一样,函数模板也可以重载。
(4)函数模板与同名的非模板函数可以重载。在这种情况下,调用的顺序是:首先寻找一个参数完全匹配的废模板函数,如果找到了就调用它;若是没有找到,则寻找函数模板,将其实例化,产生一个匹配的模板函数,若找到了,就是用它。