C++ 历史

2025年5月5日 | 阅读5分钟

C++ 语言的历史值得了解。在这里我们将简要讨论 C++ 语言的历史。

C++ 凭借其卓越的特性,如效率高、功能强大以及灵活的扩展性,仍然是主流编程语言之一。许多开发团队使用 C++ 来构建系统软件,以及开发游戏、嵌入式控制器和高吞吐量应用程序。C++ 的发展与现代计算和软件开发的所有重大进展同步进行。

C++ 的起源

Cpp History 1

C++ 编程语言由 **Bjarne Stroustrup** 于 **1980** 年在 AT&T(美国电话电报公司)的贝尔实验室(位于美国)开发。设计者通过维护最高级别编程结构的同时,专门为 Unix 系统编程需求创建了 C,以满足其底层功能要求。

在 20 世纪 70 年代末,Bjarne Stroustrup 在贝尔实验室担任丹麦计算机科学家时,为 C 添加了 Simula 67 的特性。他工作的主要目标是将 C 的高效性与 OOP 的抽象模块化系统相结合。

  • Bjarne Stroustrup 被誉为 C++ 语言的创始人。
  • 它的开发目的是在不显著改变 C 组件的情况下,为 C 添加面向对象编程 (OOP) 的功能。
  • C++ 编程是 C 的“相对”概念(称为超集),这意味着任何有效的 C 程序也是有效的 C++ 程序。

让我们看看在 C++ 语言出现之前的编程语言。

语言年份开发者
Algol1960国际团体
BCPL1967Martin Richard
B1970Ken Thompson
传统 C1972Dennis Ritchie
K & R C1978Kernighan & Dennis Ritchie
C++1980Bjarne Stroustrup

“C with Classes”的诞生

Stroustrup 于 1979 年开始了 C++ 语言的开发之旅。通过他的工作,他开发了“C with Classes”,该语言通过包含类和继承以及封装等面向对象的语言结构,实现了面向 C 的扩展。C with Classes 开发的主要目标是增强复杂系统的程序,同时不牺牲 C 风格的性能水平。

C with Classes 中引入的核心元素包括:

  • 类和对象:它支持模块化和可重用的代码。
  • 构造函数和析构函数:自动初始化和清理对象。
  • 派生类和继承:派生类概念以及继承为程序员提供了建立分层代码结构的工具。
  • 更强的类型检查:对数据类型更好的强制执行有助于减少程序员的错误。

C++ 的出现 (1983)

在 1983 年,由于它包含了许多超越原始 C 语言的改进,“C with Classes”的名称被更改为 C++。C 语言的开发者使用了“++”符号增量运算符来表示编程语言向 C++ 的进步。

在保留 C 兼容性的基础上,添加到 C++ 的新功能包括:

  • 函数重载:函数重载允许 C++ 使用不同的参数在相同的名称下定义多个函数。
  • 运算符重载:它允许为用户定义的类型自定义运算符。
  • 引用:引用系统在编程环境中作为指针的灵活替代品。
  • 内联函数:内联函数通过消除进入和退出函数的性能影响来提高系统性能。

第一个官方 C++ 版本 (1985)

第一个官方 C++ 编译器 **Cfront** 于 1985 年发布,当时 Stroustrup 发布了他的里程碑式著作 **《C++ 编程语言》**。这本书成为了程序员和教育工作者的重要参考书。自 C++ 因其成为构建复杂应用程序的工具而闻名以来,软件工程师们开始快速采用 C++。

C++ 的标准化和演进

1. C++98 (1998)

1998 年,C++ 正式获得了名为 C++98 的 ISO/IEC 标准文档,并继续其发展道路。标准模板库 (STL) 成为 C++98 标准的重要组成部分,其中包含可重用、高效的数据结构和算法。

C++98 的主要特性

C++98 的一些主要特性如下:

  • 模板:它支持泛型编程。
  • STL:标准模板库 (STL) 包含向量、映射和迭代器等标准化组件。
  • 异常处理:它提高了错误处理的健壮性。

2. C++03 (2003)

C++03 版本通过解决不一致和澄清含糊不清之处,对 C++98 进行了适度的更新。C++03 引入了改进的编译器功能以及增强的可移植性。

3. C++11 (2011) - 现代 C++ 时代

2011 年,通过引入现代编程功能,C++ 取得了重大进展。此次更新的目标是实现更好的系统性能、更好的可用性和更高的开发人员性能。

C++11 的主要特性

  • Auto 关键字:它支持类型推断。
  • Lambda 表达式:它支持函数式编程。
  • 智能指针:它改进了内存管理。
  • 移动语义:移动语义特性通过消除过度的复制操作实现了更高的性能。
  • 多线程支持:通过多线程支持,提供了标准的线程管理工具。

4. C++14 (2014) 和 C++17 (2017)

C++14 和 C++17 在 C++11 特性的基础上进行了渐进式改进,并为标准添加了新的语言特性。

C++14 包含了两个增强功能,改进了 lambda 捕获能力并增加了更好的 constexpr 功能。

C++17 包含三个主要特性,包括结构化绑定、if constexpr 语句和文件系统支持。

5. C++20 (2020) - 游戏规则的改变者

C++20 带来了重大进展,成为 C++ 历史上最大的升级之一。值得注意的特性包括:

  • Concepts:它通过基于约束的方法改进了模板编程。
  • 协程:它简化了异步编程。
  • Ranges 库:Ranges 库通过基于范围的算法扩展了标准模板库。
  • 模块:它减少了编译时依赖。

C++ 的未来

C++23 和后续标准正在开发新的更新,以进一步增强编程语言。该编程语言将继续强调性能、安全特性和现代设计范式,这使得 C++ 成为最佳开发选择。

常见问题解答

1. 谁创建了 C++?为什么它被开发出来?

Bjarne Stroustrup 在 20 世纪 70 年代末在贝尔实验室开发了 C++。C++ 的开发有两个主要目标:将 Simula 67 的面向对象概念融入 C,同时保留 C 的性能特性,用于大型软件项目。

2. C++ 何时正式发布?其主要特性是什么?

C++ 于 1985 年正式发布,当时 Stroustrup 出版了《C++ 编程语言》,他的公司发布了 Cfront 作为第一个 C++ 编译器。该编程语言积累了许多重要方面,包括类和继承,以及函数重载和运算符重载方法、引用和内联函数。

3. C++98 在该语言的演进中有什么意义?

C++98 的创建促成了 1998 年标准模板库 (STL) 的引入,使开发人员能够使用可重用的数据结构和高效的算法。通过 C++98 正式化的特性,包括模板和异常处理,C++ 在跨平台方面获得了更标准化的能力。

4. C++11 是如何改变这门语言的?

C++11 版本通过引入 auto 关键字、lambda 表达式和智能指针,并实现移动语义和多线程功能,对该语言进行了重大改进。C++ 获得了现代特性,提高了性能和可用性标准,以及内存管理能力。

5. C++20 中的主要贡献是什么?

C++20 增加了四个基本特性:Concepts、Coroutines、Ranges 和 Modules,它们改进了模板编程和异步编程,并提高了 STL 的可用性以及编译时效率。此次更新是 C++ 历史上革命性的变革之一。


下一主题C++ 特性