版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27305031/article/details/54314223
- 模板是实现代码重用的一种工具,实现类型参数化,即把类型定义为参数,从而实现代码的重用。模板分为函数模板和类模板,分别允许用户构造模板函数和模板类。
函数模板:建立一个通用函数,其函数返回类型和形参类型不具体的指定,用一个虚拟的类型来替代。
关键字typename后面的类型参数必须实例话,用实际的类型来替代它。函数模板提供了一类函数的抽象,函数模板通过实例化后生成具体函数的函数模板,函数模板代表了一类函数,模板函数表示某一具体的函数。
- 注意
(1)模板中允许使用多个类型的参数,但是template定义部分的每个参数必须有关键字class或者typename。
(2)在template语句和函数模板定义语句之间不允许有别的语句;
(3)模板函数类似与重载函数,但是更加严格,实例化后只能执行相同的操作。
(4)同一般函数一样,函数模板也可以重载。
(5)函数模板和同名的非模板函数可以重载。在这种情况下调用的顺序是找到一个参数完全匹配的非模板函数,找到就调用;若没有找到,就寻找模板函数,将其实例化,寻找一个匹配的模板函数。