一、模板与泛型编程的不同之处:
OOP能处理类型在程序之前都未知的情况;而在泛型编程中,在编译时就能获知类型了。
C++语言联邦包括四大部分:C、Object-Oriented C++、Template C++、STL;由此可见泛型编程是非常重要的一部分,应当重点对待;当我们编写一个泛型程序时,是独立于任何特定类型来编写的。模板是泛型编程的基础,一个模板就是一个创建类或函数的公式。
二、定义模板:
1 template <typename T> 2 int compare(const T& v1, const T& v2) { 3 if(v1 < v2) return -1; 4 if(v2 < v1) return 1; 5 return 0; 6 }
模板定义以关键字template开始,后跟一个模板参数列表(template parameter list),它是一个逗号分隔的一个或多个模板参数(parameter list)的列表,用<和>包围起来。模板参数列表不能为空。
模板参数表示在类或函数定义中用到的类型或值。当使用模板时,我们(隐式或显示)指定模板实参(template argument),将其绑定到模板参数上。