函数模板(目的,为了实现一个函数,完成多种类型的同样功能,比如栈,数组排序等等)
template <typename T> 或者 template <class T>
T func(T a, T b) //入参与返回参数都可以用T
{
}
调用
int main()
{
int c = func(1,2);//隐式推到类型
//或者
int c = func<int>(1,2); //显示类型
return 0;
}
类模板(目的,类内的成员变量类型声明为泛型,一般都是中间类)
template<class T1, class T2>
class Transform {
T1 x_;
T2 y_;
Transform(T1 a,T2 b)
{
x_ = a;
y_ = b;
}
};
//调用
int main()
{
Transform<int,int> trans1(1,2);
//不允许 Transform trans1(1,2); 必须显式指定类型
Transform<string,string> trans2("a","b");
return 0;
}