C++另一种编程思想称为泛型编程,主要利用的技术就是模板;
C++提供两种模板机制:函数模板和类模板
函数模板
作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。
基本语法:
template<typename T>
函数声明或定义
解释:template--声明创建模板
typename--表明其后面的符号是一种数据类型,可以用class代替
T--通用的数据类型,名称可以替换,通常为大写字母
#include <iostream>
#include <string>
using namespace std;
//交换两个整型函数
void swapInt(int &a,int &b){
int tmp=a;
a=b;
b=tmp;
}
//函数模板 声明一个模板,告诉编译器后面代码中T不要报错
template<typename T>
void mySwap(T &a,T &b){
T tmp=a;
a=b;
b=tmp;
}
int main(){
int x=10,y=20;
//swapInt(x,y);
cout<<x<<y<<endl;
//两种方式使用函数模板
//1.自动类型推导
//mySwap(x,y);
//2.显示指定类型
mySwap<int>(x,y);
cout<<x<<y<<endl;
}
函数模板的注意事项:
1.自动类型推导,必须推导出一致的数据类型T,才能使用
2.模板必须确定T的数据类型,才可以使用
这样才可以正常使用。