不得不了解的C++模板(一)
C++提供两种模板机制函数模板 类模板本节只讲函数模板首先声明下面是一个模板template<class T>函数模板T f_swap(T a,T b){}#include<iostream>using namespace std;template<class T>void f_swap(T &a, T &b) {T ...
·
为神魔要学习模板,学习模板是为了给STL做铺垫(后面会出专门章节的)
C++提供两种模板机制函数模板 类模板
本节只讲函数模板(类模板和函数模板用法基本一致)
首先声明下面是一个模板
template<class T>
函数模板
T f_swap(T a,T b){}
#include<iostream>
using namespace std;
template<class T>
void f_swap(T &a, T &b) {
T f = a;
a = b;
b = f;
}
int main() {
int a = 10;
int b = 20;
f_swap<int>(a, b);
cout << a <<endl;
cout << b << endl;
}
两种方式使用函数模板(用上面代码举例)
- 1.自动推导(不会发生隐式类别转换)
int a=10;
int b=20;
f_swap(a,b);
- 2.显示指定各类型(可以发生隐式类别转换)
int a=10;
int b=20;
f_swap<int >(a,b)
函数模板注意事项
-
自动类型推导必须推出一致的数据类型T才可以使用
-
模板必须要确定T的类型才可使用
出错因为函数没有确定T类型
好了
更多推荐
已为社区贡献2条内容
所有评论(0)