template --声明创建模板
typename 表面其后面的符号数据类型 ,可以用class代替
T 通用数据类型 名称可以替换 通常为大写字母
#include<iostream>
using namespace std;
template<typename T>//typename换作class也可
void mySwap(T& a, T& b)
{
T temp = a;
a = b;
b = temp;
}
void test01()
{
int a = 100;
int b = 10;
char c = 'c';
//1.自动类型推导
//mySwap(a, b);正确
//mySwap(a, c);错误 推导出不一致的T类型
//2.显示指定类型
mySwap<int>(a, b);
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
template<class T>
void func()
{
cout << "func调用" << endl;
}
//模板必须要确定T的数据类型 才可以使用
void test02()
{
func<int>();//func没用参数,随意定义
}
int main()
{
test01();
test02();
system("pause");
return 0;
}
总结:函数模板利用关键字template
使用函数末班有两种方式:自动类型推导 显示指定类型
模板的目的是为了提高复用性,将类型参数化