C++ 简介
C++ 是一种被广泛使用的计算机程序设计语言,是 C 语言的增强版。支持许多 C 没有的特性,包括虚函数(virtual function)、运算符重载(operator overloading)、多继承(multiple inheritance)、标准模板库(STL)、异常处理(exception)、运行时类型信息(runtime type information)、命名空间(namespace)等概念。
C++ 的诞生
C++ 是“C Plus Plus”的简写,中文读作“C加加”。最早由 Bjarne Stroustrup 博士于1979年开始设计,起因是由于没有合适的工具能够有效地分析 UNIX 内核。当时只是把它当作一种 C 语言的有效扩充,命名为 C with class。
后来,Bjarne Stroustrup 博士想将其发展为一种新的语言,并在运行时间、代码紧凑性和数据紧凑性方面能够与 C 语言相媲美,但是还要尽量避免在语言应用领域的限制。
于是,这门新的编程语言决定从 C 语言继承过来,同时参考了很多其他语言。例如,从 Simula 继承了类的概念,从 Algol68 继承了运算符重载、引用以及在任何地方声明变量的能力,从 BCPL 获得了注释,从 Ada 得到了模板、名字空间,从 Ada、Clu 和 ML 取来了异常。在1983年,正式改名为 C++。
C++ 之父 Bjarne Stroustrup
C++ 发展历程
时间 | 事件 |
---|---|
1983年8月 | 第一个 C++ 实现投入使用。 |
1983年12月 | Rick Mascitti 建议命名为 CPlusPlus,即 C++。 |
1985年2月 | 第一个 C++ Release E 发布。 |
1985年10月 | CFront 的第一个商业发布,CFront Release 1.0。 |
1985年10月 | Bjarne 博 士完成了经典巨著 The C++ Programming Language 第一版。 |
1986年11月 | C++ 第一个商业移植 CFront 1.1,Glockenspiel。 |
1987年2月 | CFront Release 1.2 发布。 |
1987年11月 | 第一个 USENIX C++ 会议在新墨西哥州举行。 |
1988年10月 | 第一次 USENIX C++ 实现者工作会议在科罗拉多州举行。 |
1989年12月 | ANSI X3J16 在华盛顿组织会议。 |
1990年3月 | 第一次 ANSI X3J16 技术会议在新泽西州召开。 |
1990年5月 | C++ 的又一个传世经典 ARM 诞生。 |
1990年7月 | 模板被加入。 |
1990年11月 | 异常被加入。 |
1991年6月 | The C++ Programming Language第二版完成。 |
1991年6月 | 第一次 ISO WG21 会议在瑞典召开。 |
1991年10月 | CFront Release 3.0 发布。 |
1993年3月 | 运行时类型识别在俄勒冈州被加入。 |
1993年7月 | 名字空间在德国慕尼黑被加入。 |
1994年8月 | ANSI/ISO 委员会草案登记。 |
1997年7月 | The C++ Programming Language 第三版完成。 |
1997年10月 | ISO 标准通过表决被接受。 |
1998年11月 | ISO 标准(ISO/IEC 14882:1998)被批准,简称 C++98。 |
2003年10月 | ISO 标准(ISO/IEC 14882:2003)被批准,简称 C++03。 |
2011年9月 | ISO 标准(ISO/IEC 14882:2011)被批准,简称 C++11。 |
2014年12月 | ISO 标准(ISO/IEC 14882:2014)被批准,简称 C++14。 |
2017年12月 | ISO 标准(ISO/IEC 14882:2017)被批准,简称 C++17。 |
2020年12月 | ISO 标准(ISO/IEC 14882:2020)被批准,简称 C++20。 |
C++ 应用领域
-
服务器端开发
许多互联网公司的后台服务器程序都是基于 C++ 开发的,包括数据库、HTTP 服务等。
-
图形界面
著名的 Qt 图形界面框架就是基于 C++ 开发的。
-
游戏
许多游戏的桌面客户端都是基于 C++ 开发的,涉及计算机图形、多媒体处理等知识。
-
虚拟现实
增强现实(AR)和虚拟现实(VR)方面需要大量基于 C++ 的开发。
-
数字图像处理
比如像 AutoCAD 的系统开发,像 OpenCV 的视觉识别等等,以及无人机、自动驾驶等领域。
-
科学计算
在科学计算领域,FORTRAN 是使用最多的语言之一。但是近年来,C++ 凭借先进的数值计算库 GSL(GNU Scientific Library)、Eigen,以及泛型编程等优势在这一领域也应用颇多。
-
网络软件
C++ 拥有很多成熟的用于网络通信的库,其中最具有代表性的是跨平台的、重量级的 ACE 库,该库可以说是 C++ 语言最重要的成果之一,在许多重要的企业、部门甚至是军方都有应用。比如 GOOGLE 的 chrome 浏览器,就是使用 C++ 开发。
-
其他领域
分布式应用、移动(手持)设备、嵌入式系统、教育与科研与部分行业应用等。