如果要使一个函数自动适用于不同的数据类型,而不是每种数据类型都要写不同的函数,模板是非常好的解决方式。
比如要求int,double和float类型的数绝对值。通常会这样写:
1 int abs (int n)
2 {
3 return n < 0 ? -n : n;
4 }
5 double abs (double n)
6 {
7 return n < 0 ? -n : n;
8 }
9 float abs (float n)
10 {
11 return n < 0 ? -n : n;
12 }
template <typename T>
T abs(T n)
{
return n < 0 ? -n : n;
}
系统在编译的时候会根据调用模板时的参数生成对应数据类型的函数然后再返回。是个省力的东西。
每天进步一点点。