1、派生类和模板:
为了运行的效率,类模板是相对独立的,即独立设计,没有使用继承的思想。对类模板的扩展是采用适配器来完成的。通用性是模板库的设计出发点之一,这是由泛型算法和函数对象等手段达到的。
派生类的目标之一也是代码复用和程序的通用性,最典型的就是MFC,派生类的优点是可以由简到繁,逐步深入,程序编制过程中可以充分利用前面的工作,一步步完成一个复杂的任务。
模板追求的是运行效率,而派生类追求的是编程的效率。
2、面向对象与泛型编程
面向对象与泛型编程都依赖于某个形式的多态;面向对象依赖于虚函数实现的动态多态,泛型编程依赖于静态多态。
面向对象中的多态在运行时应用存在的继承关系。我们编写使用这些类的代码,忽略基类与派生类之间的差异。只要使用基类指针或者引用,基类对象、派生类对象就可以共享相同的代码。
在泛型编程中,我们所编写的类和函数能够多态的用于编译时不相关的类型。一个类或一个函数可以用来操纵多种不同的对象。