比如我们要计算两个数的加法,针对不同类型可能需要设计不同类型的函数,那么template 就可以很好的解决这个问题。
//原始解决方法:
int sum(int a,int b);
double sum(double a,double b);
float sum(float a,float b);
//但是当用template <typename T>后为:
template <typename T>
T sum(T a, T b)
{
return a+b;
}
//使用时就是
int sum<int>(int a ,int b){
return a+b;
}
float sum<float>(float a ,float b){
return a+b;
}
//实现定义一个函数 多种类型使用
https://blog.csdn.net/weixin_38258767/article/details/108502222?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ETopBlog-1.topblog&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ETopBlog-1.topblog&utm_relevant_index=1
模板化分为函数模板化和类模板化
https://www.cnblogs.com/yfii/p/14804839.html
模板专门化–特殊化模板里的泛型参数 并重写其函数内部的实现 特殊化模板参数类型要被部分(temple)确定了 要么全部(temple<>)确定了
https://blog.csdn.net/weixin_44986556/article/details/120802479