Visual C++ 学习笔记四 —— 模板

  如果要使一个函数自动适用于不同的数据类型,而不是每种数据类型都要写不同的函数,模板是非常好的解决方式。

  比如要求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 。例:

template <typename T>
T abs(T n)
{
return n < 0 ? -n : n;
}
几句代码确包含了上面近十行代码的功能而且要强大的多。

 

  系统在编译的时候会根据调用模板时的参数生成对应数据类型的函数然后再返回。是个省力的东西。

 

  每天进步一点点。

posted @ 2011-01-05 23:20  MNight  阅读(268)  评论(0编辑  收藏  举报