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 年 ISO 标准(ISO/IEC 14882:2003)被批准,简称 C++03。
2011 年 ISO 标准(ISO/IEC 14882:2011)被批准,简称 C++11。
2014 年 ISO 标准(ISO/IEC 14882:2014)被批准,简称 C++14。

C++ 应用领域

  • 服务器端开发

    许多互联网公司的后台服务器程序都是基于 C++ 开发的,包括数据库、HTTP 服务等。

  • 图形界面

    著名的 Qt 图形界面框架就是基于 C++ 开发的。

  • 游戏

    许多游戏的桌面客户端都是基于 C++ 开发的,涉及计算机图形、多媒体处理等知识。

  • 虚拟现实

    增强现实(AR)和虚拟现实(VR)方面需要大量基于 C++ 的开发。

  • 数字图像处理

    比如像 AutoCAD 的系统开发,像 OpenCV 的视觉识别等等,以及无人机、自动驾驶等领域。

  • 科学计算

    在科学计算领域,FORTRAN 是使用最多的语言之一。但是近年来,C++ 凭借先进的数值计算库 GSL(GNU Scientific Library)、Eigen,以及泛型编程等优势在这一领域也应用颇多。

  • 网络软件

    C++ 拥有很多成熟的用于网络通信的库,其中最具有代表性的是跨平台的、重量级的 ACE 库,该库可以说是 C++ 语言最重要的成果之一,在许多重要的企业、部门甚至是军方都有应用。比如 GOOGLE 的 chrome 浏览器,就是使用 C++ 开发。

  • 其他领域

    分布式应用、移动(手持)设备、嵌入式系统、教育与科研与部分行业应用等。

Leave a Reply