来源:哔哩哔哩
模板就像工厂里生产东西的机器,比如:你就可以只写一个 Swap 模板,编译器会根据 Swap 模板自动生成多个 Sawp 函数,用以交换不同类型变量的值。
——————————————————————————
(相关资料图)
头文件: 无要求
分类: 模板分为函数模板和类模板,一个生产函数,一个生产类;
格式: template(class 类型参数1,class类型参数2 .......)
void 函数模板(。。。。。)
int main
{
。。。。。。
}
________________________________________________________________
//examble:
#include<iostream>
using namespace std;
template<class T>
void Swap(T & a,T & b)
{
T temp=a;
a=b;
b=temp;
}
int main()
{
int x=1,y=5;
Swap(x,y);
cout<<x<<" "<<y<<endl;
double j=2.8,l=1.3;
Swap(j,l);
cout<<j<<" "<<l;
}
// 输出结果:5 1
1.3 2.8
__________________________________________________________
//也可以这样写(另一个程序,不是交换数值的Swap的第二种写法)
#include <iostream>
using namespace std;
template <class T>
T Inc(int n)
{
return 1 + n;
}
int main()
{
cout << Inc<double>(4) / 2;
return 0;
}
//编译器不会因为实参 4 是 int 类型,就生成原型为 int Inc(int) 的函数。因此,上面程序输出的结果是 2.5 而非 2。
———————————————————————————
tip1 : 函数名和类名首字母一定要大写!
tip2:函数记得传址调用!
tip3: class可以用typename来代替