基本语法
- 函数模板利用关键字template
- 使用函数模板有两种方式:自动类型推导、显示指定类型
- 模板的目的是为了提高复用性,将类型参数化
//函数模板
template //声明一个模板,告诉编译器后面代码中紧跟着T不要报错,T是一个通用数据类型
void mySwap(T &a, T &b) {
T temp = a;
a = b;
b = temp;
}
void test01() {
int a = 2;
int b = 1;
//使用方法:
//1.自动类型推导
mySwap(a, b);
cout << "a =" << a << endl;
cout << "b =" << b << endl;
//2.显示指定类型
mySwap(a, b);
cout << "a =" << a << endl;
cout << "b =" << b << endl;
}
注意事项
- 自动类型推导,必须推导出一致的数据类型T才可以使用
template //typename可以替换成class
void mySwap(T &a, T &b) {
T temp = a;
a = b;
b = temp;
}
void test01() {
int a = 10;
int b = 20;
char c = 'c';
mySwap(a, b); //正确!
//mySwap(a, c); //错误! 推到不出一致的T类型
cout << "a=" << a << endl;
cout << "b=" << b << endl;
}
- 模板必须要确定出T的数据类型,才可以使用
template
void func() {
cout << "func 调用" << endl;
}
void test02() {
//func(); //错误
func();
}