模板&泛型编程
template <class T> 或 template <typename T>
有时称类模板为类型生成器。
泛型编程依赖于显示模板参数的形式称为参数化多态(应该是翻译的问题,不像人说的话啊)。面向对象编程那个多态称为专用多态。都称为多态是因为每种类型都依赖于程序员通过一个单一的接口表示一个概念的多个版本。
为什么使用模板? 为了灵活性和性能。
当编译器编译一个使用模板的代码时,编译器将查看模板以及模板的参数类型。其目的在于获得足够的信息以生产优化代码。编译器试图要求模板必须在他被使用的位置完全定义。因此模板的设计者会试图将模板的定义放置在头文件中。
建议:对于将在多个翻译单元中使用的模板,它的定义应包含在头文件中。
我们应该记住,对于任何模板c而言,“D 是B” 并不意味着“C<D>”是C<B>"

浙公网安备 33010602011771号