为什么我们使用模板而不是函数?

use*_*467 2 c++

只是寻找一些好的理由让我可以开始了解它们:/

mae*_*ics 9

避免重复除了不同类型之外在其他方面相同的代码.有时您根本无法依赖隐式转换或升级,也无法将所有内容都填充到对象层次结构中.

  • ...或者在编译时生成代码.例如,使用[Boost.Spirit](http://boost-spirit.com/home/)从内联C++生成解析器. (3认同)

Sco*_*ley 5

模板是 C++ 的重要组成部分,正如已经提到的,它们允许您开发通用类型的函数或类。您在使用它们时指定类型。如果没有其他原因,为了理解 boost 和标准模板库,你真的应该学习模板。

这些库为您提供了一整套容器和算法,适用于任何内置或用户定义的类型。

例如向量类:

  vector<int> v(3);            // Declare a vector of 3 elements.
  v[0] = 7;
  v[1] = v[0] + 3;
  v[2] = v[0] + v[1];          // v[0] == 7, v[1] == 10, v[2] == 17  
Run Code Online (Sandbox Code Playgroud)

此类的客户端将其指定为 int 向量,但它也可以很容易地是字符串或任何其他类型的向量。