0
点赞
收藏
分享

微信扫一扫

C++语言开篇简介

鱼板番茄 2022-04-22 阅读 80
c++

C++是一种计算机高级程序设计语言,由C语言扩展升级而产生,最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。

C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。

C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

在这里插入图片描述

1. 发展历程

1970年,AT&T贝尔实验室的工作人员D.Ritchie和K.Thompson共同研发了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,实际上C语言是UNIX的“副产品”。

1971年,瑞士联邦技术学院N.Wirth教授发明了第一个结构化的编程语言Pascal。

20世纪70年代中期,本贾尼·斯特劳斯特卢普在剑桥大学计算机中心工作。斯特劳斯特卢普希望开发一个既要编程简单、正确可靠,又要运行高效、可移植的计算机程序设计语言。而以C语言为背景,以Simula思想为基础的语言,正好符合斯特劳斯特卢普的初衷和设想。

1979年,本贾尼·斯特劳斯特卢普到了AT&T贝尔实验室,开始从事将C改良为带类的C(C with classes)的工作。、1983年,该语言被正式命名为C++。

1985年、1990年和1994年,C++先后进行3次主要修订。

C++的标准化工作于1989年开始,并成立了一个ANSI和ISO(International Standards Organization)国际标准化组织的联合标准化委员会。

1994年1月25曰,联合标准化委员会提出了第一个标准化草案。在该草案中,委员会在保持斯特劳斯特卢普最初定义的所有特征的同时,还增加了部分新特征。

在完成C++标准化的第一个草案后不久,亚历山大·斯特潘诺夫(Alexander Stepanov)创建了标准模板库(Standard Template Library,STL)。在通过了标准化第一个草案之后,联合标准化委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。

1997年11月14日,联合标准化委员会通过了该标准的最终草案。

1998年,C++的ANSI/IS0标准被投入使用。

标准版本发布时间正式名称
C++ 032003年ISO/IEC 14882:2003
C++ 112011年8月12日ISO/IEC 14882:2011
C++ 142014年8月18日ISO/IEC 14882:2014
C++ 172017年12月6日ISO/IEC 14882:2017
C++ 202020年12月7日ISO/IEC 14882:2020

2. 工作原理

C++语言的程序开发环境,为了方便测试,将调试环境做成了解释型。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。

开发C++应用程序,需要经过编写源程序、编译、连接程序生成可执行程序、运行程序四个步骤。生成程序是指将源码(C++语句)转换成一个可以运行的应用程序的过程。如果程序编写正确,那么通常只需按一个功能键,即可完成该过程。

第一步对程序进行编译,这需要用到编译器(compiler)。编译器将C++语句转换成机器码(也称为目标码);
如果该步骤成功执行,下一步就是对程序进行链接,这需要用到链接器(linker)。链接器将编译获得机器码与C++库中的代码进行合并。C++库包含了执行某些常见任务的函数(“函数”是子程序的另一种称呼)。例如,一个C++库中包含标准的平方根函数sqrt,所以不必亲自计算平方根。C++库中还包含一些子程序,它们把数据发送到显示器,并知道如何读写硬盘上的数据文件。

C++是静态、可变翼、通用、大小写敏感,格式自由的编程语言,它支持程序化,面向对象的和泛型编程方式。

C++被看作是中间件语言,因为它同时包含了低级语言和高级语言的特性。

C++是1979年在新泽西的茉莉山丘的贝尔实验室由本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)开发的,它是C语言的加强版,他最开始"C with classes",后来称作为C++。

C++是C语言的超级,也就是说任何合法的C程序同时也是合法C++程序。

静态类型是指类型检查是在编译的时候进行的,而不是在运行期检查。

C++最大的力量不在于其抽象,恰恰在于其不抽象,但C++之所以脱离C而存在,因为其强大的抽象能力。

解决任何问题不必距离与什么笼盖一切的编程思想,也不再沉溺于各种古怪的模板技巧中无法自拔,而是根据问题本身采用最自然的最符合直觉的方式。

3. 四个特性

  1. 封装
  2. 数据隐藏
  3. 继承
  4. 多态

4. 语言评价

C++语言是对C语言的扩充,从Simula中吸取了类,从ALGOL语言中吸取了运算符的一名多用、引用和在分程序中任何位置均可说明变量,综合了Ada语言的类属和Clu语言的模块特点,形成了抽象类,从Ada Clu和ML等语言吸取了异常处理,从BCPL语言中吸取了用//表示注释C++语言保持了C语言的紧凑灵活、高效以及易于移植性强等优点,它对数据抽象的支持主要在于类概念和机制,对面向对象风范的支持主要通过虚拟机制函数因C++语言既有数据抽象和面向对象能力,运行性能高,加上C语言的普及,而从C语言到C++语言的过渡较为平滑,以及C++语言与C语言的兼容程度可使数量巨大的C语言程序能方便地在C++语言环境中复用,使C++语言在短短几年内能流行。(计算机软件专家王汝传 评)

作为最受欢迎的编程语言之一,C++带给开发者们最大的惊喜便是其强大的特性。一方面跟C兼容,可以直面系统底层API,SDK,另一方面提供了很多范式,足够的抽象能力,面向对象,操作符重载,模板等。(脚本之家 评)

语言没有好坏,只是看使用者能把一门语言发挥的什么程度了,C/C++的潜力都是非常非常大的,所以我建议大家可以试着学学C++,不试试怎么知道自己不行

5. C++能用来干什么

5.1. 软件开发

操作系统可以分为两块:内核以及内核以外的一些应用程序。内核用于控制最底层的硬件设备,而应用程序则是用于完成一系列的任务。应用程序是通过调用系统提供的接口(如 windows API)操作硬件来实现一系列的功能。

要想从事应用软件开发,除了需要掌握基本的 C++语法以外,还需要对 windows系统及其他系统提供的 API 或 SDK 有一定的了解。与之相对应的岗位主要有软件开发工程师、算法工程师、架构工程师等。

5.2. 游戏开发

掌握了 C++基本语法之后,开发游戏也依然是一个不错的选择,目前工业级别的 3D 游戏引擎仍然是用 C 或 C++ 编写的。

虽然以个人能力无法去完成一个庞大的网络游戏,但是从简单开始,编写一些小游戏,然后逐渐深入,循序渐进并最终加入大型游戏开发团队还是非常好的一个选择。与之相应的就业岗位主要有游戏开发工程师、游戏引擎架构工程师等。

5.3. 多媒体开发

目前多媒体技术同样渗入到人们的日常生活中,音视频已经成为人们获取信息的一个非常重要的手段。音视频在传输过程中都是经过压缩并且按照一定规则打包过的。视频的编码技术从最开始的 H.261 到如今的 H.265,经历了 30 多年的发展,而且实现代码全部是由 C 或 C++ 实现。

最新的 HEVC 编码标准就是由 C++ 代码实现,对此感兴趣的话在学完 C++ 语法后,可以去 ITU(国际电信联盟)官网去下载源码查看。与之相应的就业岗位有图像算法工程师、视频编码研发工程师、音视频转码工程师等。

5.4. 人工智能

人工智能、机器学习等方向也少不了 C 或 C++ 语言的身影。虽然人工智能距离我们还有些远,但随着科技的飞速进步,将来能实现也未可知。

举报

相关推荐

0 条评论