C++学习笔记之模板与泛型编程
面向对象编程(OOP)和泛型编程都能处理在编写程序时不知道类型的情况。不同之处是OOP能处理类型在程序运行之前都未知的情况(即通过多态的动态绑定);而泛型编程中,在编译时就能确定类型,只是可以应用于不同的类型,例如vector可以放int,也可以放string等。
既可以定义函数模板也可以定义类模板。
函数模板
1.一个函数模板就相当于一个公式,用来生成针对特定类型的函数版本。模板定义以关键字template开始,后跟一个模板参数列表(template parameter list),多个模板参数需要由逗号分割,使用尖括号包围起来,参数列表不能为空,模板参数表示在类或函数中用到的类型或值,当使用模板时,隐式或显示地指定模板实参(template argument),将其绑定到模板参数上。eg: