成长路上不孤单😊😊😊😊😊😊
【14后😊///C++爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】
今日分享关于C++诞生的相关内容!
关于【C++诞生】
目录:
- 一、什么是C++语言
- 二、C++语言的发展历程
- 三、C++语言特点
- 四、C++语言的优缺点
- 五、C++语言的工作原理
- 六、C++语言的应用领域
一、什么是C++
C++(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生 [17],最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。
C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。 C++几乎可以创建任何类型的程序:游戏、设备驱动程序、HPC、云、桌面、嵌入式和移动应用等。 甚至用于其他编程语言的库和编译器也使用C++编写。
C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
二、C++发展历程
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++。
C++是由C语言扩展升级而来的高级程序设计语言,最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔实验室研发。 C++结合了C语言的过程化程序设计和面向对象的程序设计,支持封装、继承和多态等特性。
C++的诞生背景可以追溯到C语言的发展。C语言在70年代初问世,由美国电话电报公司(AT&T)贝尔实验室于1978年正式发表。C++是在C语言的基础上进行扩展和升级的,旨在提高程序的抽象层次和复用性。
C++的诞生不仅是为了解决C语言在面向对象编程方面的不足,还为了提供更高的编程效率和更好的程序结构。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++语言特点
-
与C语言的兼容性
C++与C语言完全兼容,C语言的绝大部分内容可以直接用于C++的程序设计,用C语言编写的程序可以不加修改地用于C++。
-
数据封装和数据隐藏
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类的工作原理,只要知道如何使用它即可。
-
支持继承和重用
在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。
-
多态性
采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。
继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。
四、C++优缺点
C++作为一种广泛使用的编程语言,具有一系列的优点和缺点。
优点
- 高性能:C++是一种编译型语言,可以直接在硬件上运行,因此执行速度非常快。这使得C++成为对性能要求极高的应用程序(如操作系统、游戏引擎、实时交易系统等)的首选语言。
- 灵活性和控制力:C++提供了对硬件和内存的精细控制,允许程序员直接操作内存地址、进行位运算等。这种灵活性使得C++能够编写出高效且资源消耗低的程序。
- 面向对象编程:C++支持面向对象编程(OOP)范式,包括封装、继承和多态等特性。这使得C++能够构建出模块化、可重用和易于维护的代码库。
- 广泛的库支持:C++拥有庞大的标准库(STL)和第三方库,涵盖了从数据结构到网络编程的各个方面。这些库为开发者提供了丰富的工具和资源,加速了开发过程。
- 跨平台性:C++编写的代码可以在不同的操作系统和硬件上编译和运行,只需针对不同的平台进行适当的配置和编译即可。
- 与C语言的兼容性:C++是C语言的超集,这意味着C++代码可以很容易地与C语言代码进行交互,可以利用现有的C语言库和代码资源。
缺点
- 复杂性:C++的复杂性是其最大的缺点之一。语言本身包含了大量的特性和语法规则,这使得初学者很难快速掌握。此外,C++的编译错误和运行时错误也可能很难调试。
- 内存管理:虽然C++提供了对内存的精细控制,但也带来了内存泄漏和指针错误等风险。程序员需要手动管理内存分配和释放,这增加了出错的可能性。
- 编译时间:由于C++是一种编译型语言,其编译时间可能相对较长,尤其是在处理大型项目时。这可能会影响开发效率。
- 学习曲线:C++的学习曲线相对较陡,需要投入大量的时间和精力来掌握其复杂的特性和最佳实践。这对于初学者来说可能是一个挑战。
- 代码可读性:C++的代码可能会因为使用了复杂的模板、宏和指针而变得难以阅读和理解。这可能会影响代码的维护性和可移植性。
- 社区支持:尽管C++有庞大的用户群和社区支持,但与一些更现代的编程语言相比,其社区可能不如它们活跃和易于访问。这可能会使初学者在寻求帮助时遇到困难。
综上所述,C++具有高性能、灵活性和面向对象编程等优点,但也存在复杂性、内存管理问题和学习曲线等缺点。在选择是否使用C++时,需要根据项目的具体需求和团队的技术栈来综合考虑。
五、工作原理
C++语言的程序开发环境,为了方便测试,将调试环境做成了解释型。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。
开发C++应用程序,需要经过编写源程序、编译、连接程序生成可执行程序、运行程序四个步骤 [23]。生成程序是指将源码(C++语句)转换成一个可以运行的应用程序的过程。如果程序编写正确,那么通常只需按一个功能键,即可完成该过程。
第一步对程序进行编译,这需要用到编译器(compiler)。编译器将C++语句转换成机器码(也称为目标码);如果该步骤成功执行,下一步就是对程序进行链接,这需要用到链接器(linker)。链接器将编译获得机器码与C++库中的代码进行合并。C++库包含了执行某些常见任务的函数(“函数”是子程序的另一种称呼)。例如,一个C++库中包含标准的平方根函数sqrt,所以不必亲自计算平方根。C++库中还包含一些子程序,它们把数据发送到显示器,并知道如何读写硬盘上的数据文件。
六、C++语言的应用领域
- 软件开发:C++是一种通用编程语言,适用于开发许多不同类型的软件,包括桌面应用程序、Web应用程序、操作系统等。许多大型软件项目如Adobe Photoshop、Microsoft Office、Mozilla Firefox等都是使用C++编写的。
- 游戏开发:C++在游戏开发领域非常流行,许多游戏引擎和游戏开发工具都是使用C++编写的,如Unity、Unreal Engine等。
- 系统工程:在系统工程领域中,C++语言是不可或缺的,许多计算机操作系统和底层软件都是使用C++编写的。
- 人工智能:C++在人工智能领域也扮演着重要角色,可以通过高效的内存管理和快速的运行速度来优化深度学习框架。
- 金融领域:由于C++是一种高效的编程语言,因此在金融领域中广泛使用,用于编写交易系统和高频交易系统。
- 操作系统开发:C++是开发操作系统所必需的编程语言之一,许多流行的操作系统如Windows和Linux都是使用C++编写的。
- 大数据分析:C++语言具有高强的计算性能和数据处理能力,因此在大规模数据分析和计算领域也有着广泛应用。
在各个领域中的具体应用实例
- 软件开发:Adobe Photoshop、Microsoft Office、Mozilla Firefox等大型软件项目都是使用C++编写的。
- 游戏开发:许多游戏引擎和游戏开发工具如Unity、Unreal Engine都是使用C++编写的。
- 系统工程:许多计算机操作系统和底层软件如Windows、Linux、Apache等都使用C++编写。
- 人工智能:C++可以用于优化深度学习框架如Caffe和TensorFlow。
- 金融领域:C++用于编写高频交易系统和交易软件,以实现快速数据处理。
- 大数据分析:C++在数据挖掘、机器学习、图形计算和科学计算等领域中有着广泛应用。