看了一篇关于模板的文章, 写的不错, 只是在编译的时候有点小问题做了修改, 添加了一些补充性的概念, 以便方便我更加理解模板的概念,感谢原作者提供的好文章, 原文地址:http://prglab.com/cms/pages/c-tutorial/advanced-concepts/templates.php
辅助文章可以参考:http://www.kuqin.com/language/20090405/44193.html
何时需要模板:
我的理解是(不知道对不对) 一般需要函数通用或者类通用的时候需要模板, 还有就是泛型编程, 什么是泛型编程呢?
网上找了篇文章 呵呵
泛型编程
函数模板( Function templates)
模板(Templates)使得我们可以生成通用的函数,这些函数能够接受任意数据类型的参数,可返回任意类型的值,而不需要对所有可能的数据类型进行函数重载。这在一定程度上实现了宏(macro)的作用。它们的原型定义可以是下面两种中的任何一个:
template <class identifier> function_declaration;
template <typename identifier> function_declaration;
上面两种原型定义的不同之处在关键字class 或 typename的使用。它们实际是完全等价的,因为两种表达的意思和执行都一模一样。
例如,要生成一个模板,返回两个对象中较大的一个,我们可以这样写:
在第一行声明中,我们已经生成了一个通用数据类型的模板,叫做GenericType。因此在其后面的函数中,GenericType 成为一个有效的数据类型,它被用来定义了两个参数a和 b ,并被用作了函数GetMax的返回值类型。
<