📜  C++的历史

📅  最后修改于: 2021-05-30 04:46:36             🧑  作者: Mango

C++语言是一种面向对象的编程语言,是低级和高级语言(中级语言)的结合。该编程语言是由位于新泽西州Murray Hill的贝尔电话实验室(现称为诺基亚贝尔实验室)的丹麦计算机科学家Bjarne Stroustrup创建,设计和开发的。因为他想要一种灵活且动态的语言,它具有与C类似的所有功能,但具有附加的活动类型检查,基本继承,默认函数自变量,类,内联等功能,因此启动了带有类(C++)的C语言。

C++最初被称为“带有类的C”,并于1983年更名为C++。因此,C++大致意味着“比C高一”。

  • C++编程语言的历史可以追溯到1979年,当时Bjarne Stroustrup为博士学位论文进行了一些开发。在Stroustrup可以使用的所有单词中,有一种被称为Simula的语言,顾名思义,它可能是一种主要为仿真而设计的语言。 Simula 67语言是Stroustrup使用的变体,被认为是支持面向对象编程范例的主要语言。 Stroustrup发现这种范例对包装开发很有帮助。但是,Simula语言对于实践和实际使用而言太慢了。
  • 随后不久,他开始从事“带有类的C ”的工作,因为该名称所隐含的含义是C语言的超集。他的主要梦想是将他创建的高级面向对象程序设计转化为C语言,而在他那个时代,它仍然是通过不牺牲速度或灵活性而广受尊重的可移动性,可移植性和紧凑性的编程语言。低层次的实用性。他的编程语言包含内联,基本继承,默认函数参数,类别和可靠的排序,这是对C语言的所有或任何其他选项的补充检查。
  • 第一个带有类别编译器的C称为Cfront ,它是从称为CPre的C编译器派生而来的。它曾经是一个旨在将带有类别代码的C转换为通用C的程序。值得注意的目的是Cfront主要是用C用类编写的,从而创建了一个自托管的编译器(可以自行编译的编译器) 。 Cfront后来在1993年被放弃,当时将新选项(主要是C++异常)集成到其中变得很麻烦。即使这样,Cfront仍对未来的编译器以及操作系统UNIX的实现产生了重大影响。
  • 1983年,该语言的名称从带有类别的C修改为C++。 C语言中的++运算符是用于递增变量的关联运算符,这可让您深入了解Stroustrup是否将其视为编程语言。关于这一点,还有几个新的选项,其中最值得注意的是该区域单元的虚函数,执行重载,使用const关键字进行引用以及使用两个正斜杠的单行注释(这可能是来自BCPL语言的功能) )。
  • 1985年,Stroustrup与名为C++编程语言的语言的关系被印刷并被释放。同年,C++被强制用作广告产品,因此开始将其作为商业元素。编程语言尚未正式标准化,但仍使该书成为必不可少的参考。编程语言在1989年再次进行了更新,以合并受保护的成员和静态成员,仍然作为许多类别和类的关联继承。
  • 1990年,作为参考的《注释的C++手册》全面发布。仅在1990年的同一年,Borland的Turbo C++编译器也将作为广告产品商业投放市场。 Turbo C++过多地占用了其他库,这可能会对C++的开发产生重大影响。尽管Turbo C++的最后一次稳定使用是在2006年,但编译器仍继续得到广泛使用。
  • 1998年,C++习惯咨询与标准委员会为C++ ISO / IEC 14882:1998印刷了第一个国际标准,该国际标准可能被非正式地称为C++ 98。前面提到了带注释的C++手册,对质量的发展产生了重大影响。于1979年开始对其知识进行构建的质量模板库(也称为标准模板库)已附加在其中。在2003年,委员会根据1998年的习惯精通了多个问题,并对其进行了修订。修改后的语言称为C++ 03
  • 在2005年,C++的同一委员会发布了一份技术报告(称为TR1 ),具体说明了他们旨在提升最新C++标准的各种选择。该新规则被非正式地称为C++ 0x,因为它有望在第一个十年的前一天被释放。具有讽刺意味的是,新习惯直到2011年年中才得以实现。到那时为止,已经发布了许多技术报告,并且一些编译器开始为新选项和功能添加实验性支持。
  • 在2011年中,新的C++习惯(称为C++ 11 )完成了。 Boost库项目对新规则产生了重大影响,并且一些新模块直接从相应的Boost库派生。包括的许多新选项包括:
    1. 新的for循环语法提供了实用性,就像使用特定不同语言的foreach循环一样
    2. 常规线程库(直到2011年都缺少每个C和C++)
    3. 可变参数模板
    4. 机动车(AUTO)关键字
    5. 新的仪器类别和类别
    6. 新的C++时间库,原子支持
    7. 综合组织库
    8. 正则表达式支持
    9. 对联合和数组初始化列表的更高支持
  • C++ 17是C++的最新版本。正在发布C++的更新和高级版本,即C++ 20。
  • 根据TIOBE Index在2019年的最新研究,通过淘汰Python , C++仍然是第三流行的编程语言,仅次于Java和C.所有功劳归功于新发布的C++ 11版本,根据用户的使用,它变得更健壮,更安全,更简单,更富有表现力。

Bjarne Stroustrup用C++创建了出色的作品。 C可能是底层编程语言,因此它没有任何类。它不包含多个选项,这些选项将使编程更加轻松自如,但是,这是最快的语言(汇编更快;但是,在建筑中编程不是您要考虑的一件事),Bjarne Stroustrup补充了什么通过将代码像生命对象一样,事物以一半为导向。使C++如此可爱的原因是C的速度以及它的高级编程语言,因此,我们可以说每个世界上最有效的语言。但是相反,C++很难被新手注意到,对于您在C++上编写的等效代码,您将有四分之一的时间可以用Python编写代码。

C++的功能:
C++的五个最佳功能是:

  1. 就事实而言,它是竞争性编程中使用最广泛的语言。大多数极受好评的编码器通常使用C++进行加密。您会在任何在线网站上看到它。
  2. STL(标准指南库):对于识别C并仍为气泡类型编写代码的人们而言,它非常节省时间。
  3. 运算符重载
  4. 多重继承。大量语言没有此功能。
  5. 毕竟能够模块化代码,封装和多态性。

各种C++版本的历史记录摘要表:

Version Release Date Major changes
C++98 (ISO/IEC 14882:1998) October 1998 The first version
C++03 (ISO/IEC 14882:2003) February 2003 Introduction of value initialization.
C++11 August 2011 Introduction of Lambda Expressions, Delegating Constructors, Uniform Initialization Syntax, nullptr, Automatic Type Deduction and decltype, Rvalue References etc.
C++14 August 2014 Introduction of polymorphic lambdas, digit separators, generalized lambda capture, variable templates, binary integer literals, quoted strings etc.
C++17 December 2017 Introduction of fold expressions, hexadecimal floating point literals, a u8 character literal, selection statements with initializer, inline variables etc.
C++20 2020-2021 Upcoming release
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”