一般来说, 计算机语言要处理两个概念——数据和算法。 数据是程序使用和处理的信息, 而算法是程序使用的方法。
C++融合了3种不同的编程方式: C语言代表的过程性语言、 C++在C语言基础上添加的类代表的面向对象语言、 C++模板支持的泛型编程。
C | C++ |
---|---|
面向过程:强调编程的算法方面 | 面向对象编程(OOP):强调数据 |
自顶向下(top-down) | 自下向上(bottom-up) |
在C++中, 类是一种规范, 它描述了这种新型数据格式,对象是根据这种规范构造的特定数据结构。 通常, 类规定了可使用哪些数据来表示对象以及可以对这些数据执行哪些操作。
泛型编程(generic programming) 是C++支持的另一种编程模式。它与OOP的目标相同, 即使重用代码和抽象通用概念的技术更简单。 不过OOP强调的是编程的数据方面, 而泛型编程强调的是独立于特定数据类型。 它们的侧重点不同:OOP是一个管理大型项目的工具, 而泛型编程提供了执行常见任务(如对数据排序或合并链表) 的工具。
术语泛型(generic) 指的是创建独立于类型的代码。 C++的数据表示有多种类型——整数、 小数、 字符、 字符串、 用户定义的、 由多种类型组成的复合结构。 例如, 要对不同类型的数据进行排序, 通常必须为每种类型创建一个排序函数。 泛型编程需要对语言进行扩展, 以便可以只编写一个泛型(即不是特定类型的) 函数, 并将其用于各种实际类型。 C++模板提供了完成这种任务的机制。