C++ 是一种通用的编程语言,它是作为 C 语言的扩展而开发的,采用了面向对象的范式。它是一种命令式的编译型语言。C++ 是一种中级语言,其优点是既能编写底层应用程序(如内核、驱动程序),也能编写高级应用程序(如游戏、桌面应用、GUI 等)。C 和 C++ 的基本语法和代码结构是相同的。
C 和 C++ 的相似之处在于:
| C | C++ |
|---|---|
| 在 1969 年至 1973 年间,Dennis Ritchie 开发了 C 语言。 | 1. Bjarne Stroustrup 于 1979 年开发了 C++。 |
| C 不支持多态性、封装和继承,也不支持面向对象编程。 | 2. 作为一种面向对象的编程语言,C++ 支持多态性、封装和继承。 |
| C 是 C++ 的子集。 | 3. C++ 被认为是 C 的超集。 |
| C 语言包含 32 个关键字。 | 4. C++ 包含 63 个关键字。 |
| 对于代码开发,C 支持过程式编程。 | 5. 由于 C++ 同时支持过程式和面向对象的编程范式,因此被称为混合语言。 |
| 作为一种过程式编程语言,C 将数据和函数分离开来。 | 6. 在 C++ 中,数据和函数以对象的形式封装在一起。 |
| C 完全不支持信息隐藏。 | 7. 数据通过封装被隐藏,以确保数据结构和运算符按预期使用。 |
| C 支持内置数据类型,并且 C 是一种函数式语言。 | C++ 支持内置和用户自定义的数据类型,它是一种面向对象的语言。 |
| C 被称为函数式编程语言,因为 C 是一种过程式编程语言。 | C++ 是一种对象驱动的语言,因为它是面向对象编程。 |
| 在 C 中,不支持函数和运算符的重载。 | C++ 支持函数和运算符重载。 |
| C 中不存在命名空间特性。 | C++ 中使用命名空间来避免名称冲突。 |
| C 使用的头文件是 stdio.h。 | C++ 中使用的头文件是 iostream.h。 |
| C 不支持引用变量,也不支持虚函数和友元特性。 | C++ 支持引用变量,并支持虚函数和友元函数。 |
| C 主要关注方法或过程。 | C++ 主要关注数据,而不是方法或过程。 |
| C 提供了 malloc() 和 calloc() 函数用于动态内存分配,以及 free() 函数用于释放内存。 | C++ 提供了 new 内存分配和 delete 内存释放运算符。 |
C++ 是世界上最受欢迎的编程语言之一,它被用于当今的操作系统、图形用户界面和嵌入式系统中。C++ 是一种面向对象的编程语言,它为程序提供了明确的结构,并允许代码重用,从而降低了开发成本。此外,它具有可移植性,可用于开发适用于多个平台的应用程序。C++ 有趣且易于学习,C++ 的一个重要特点是它与 C# 和 Java 非常相似,这使得程序员可以轻松地切换到 C++ 或从 C++ 切换到其他语言。

1979 年,一位名叫 Bjarne Stroustrup 的计算机科学家在贝尔实验室开始研究“C with Classes”,它是 C 的一个超集。在撰写博士论文期间,他接触到了 Simula 这种语言,并发现它具有对大型软件实现非常有用的特性,但速度很慢。于是,他着手创建一种既像 C 一样快速高效,又具备 Simula 特性的语言。
1982 年,他开始开发“C with Classes”的后继者,并将其命名为“C++”,其中“++”是增量运算符。除此之外,还添加了许多其他功能,包括虚函数、单行注释、引用、常量以及运算符和方法重载。