当我们使用class的时候,考虑的是运行时的多态, 这个利用虚函数实现。基类建立起一个接口(虚函数),派生类可以从此进行派生,在不违反接口的语义的前提下重写基类的虚函数。 这就是传说中C++三大特性之一的多态。
但是这样的话有两个主要缺点:
一: 这些类型必须唯一同一个继承自某一个公共的基类。
二: 每次虚函数的调用都要通过一个额外的见解层----虚函数指针列表。
如果在编译期就知道是什么类型的话就可以完全避免这两个问题。这就有了泛型---在编译期间,由编译期判断用什么样子的型别。
当然, 缺点也是显而易见的, 对编译器要求高,增加编译的时间。