c++ 的前世今生

c++的前世今生 C++的历史起源于1979年,当时Bjarne Stroustrup在AT&T贝尔实验室工作,他的目标是创建一种新编程语言,这种语言能够结合C语言的高效性和灵活性,同时加入面向对象编程(OOP)的特性以提高软件的可维护性和可扩展性。Stroustrup的工作最终导致了C with Classes的诞生,这是C++的前身。到了1983年,C with Classes正式更名为C++,标志着这门语言从C语言的一个增强版转变为一个独立的编程语言。 阅读详情
     C++ 编程语言的历史可以追溯到1979年,当时Bjarne Stroustrup(后面简称BS) 正在为他的博士学位工作。BS 曾近有幸用过Simula这种语言,通过名字可知道这种语言主要被模拟器使用。BS使用的是Simula的变种Simula67,这种语言被认为是第一个支持面向对象编程范式的语言。BS发现这种范式在软件开发中非常有用,但Simula在实际使用中速度非常慢。
     之后,他开始使用带类的C语言,从名字上可以映射出来这是C语言的一种超集。他的目标是将面向对象编程加入到C语言中,C语言至今为了跨平台不需要牺牲速度或它的系统级的功能而广受赞誉。BS的语言包括类,基本的继承,inline,默认参数,强类型这些特性加入到了C语言。
     第一个带类的C编译器被叫做CFront,来自C语言编译器名字cpre。就是一个被设计来将带类的C语言翻译成纯正的C语言。一个更加有趣的点一文不值的是CFront是用带类的C语言写得,使得它成为了一种自编译的语言。CFront将在之后的1993年放出,然后它变的非常困难将新特性C++ 异常加入到里面。然后,CFront产生了巨大的影响在将来的编译器的和Unix操作系统实现方面。
     在1983年,语言的名字从带类的C改为了C++。++操作符在C语言里是一个变量自增的操作符,这带给了BS认识这门语言的灵感。许多新的特性就是在这阶段添加的,最有价值的虚函数,函数重载,通过&符号的引用,const关键字,通过双斜杠注释单行(这个特性来自BCPL语言)。
     在1985年,BS的《c++ programming language》书出版。同年,C++被完善成为商业产品。这时C++没有官方的标准,这本书就成为了非常重要的参考。1989年C++被再次更新,包含了protected关键字,静态成员,以及多重继承。
    1990年,《C++实践注解》发行,同年Borland公司的Turbo C++编译器将会作为商业产品发行。Turbo C++ 添加了大量库,对C++的开发产生了很大的影响。尽管Turbo c++ 最近的稳定版在2006年发行,但其编译器任然广泛的使用。
     1998年,C++标准委员会议出版了第一个C++国际标准叫做C++ ISO/IEC 14882:1998,这就是有名的C++98.《C++实践注解》在标准开发方面有很大的影响。标准模板,在1979就有了开发概念,在这次被包含进来了。在2003年,标准委员会回应了多个C++98标准中得问题,并正确的修复了问题。这次语言上得改动产生了C++03。
     2005年,C++标准委员会发布了技术报告(产生了TR1)有关各种特性,他们计划加到最新的C++标准里。新的标准非正式的产生了C++0x,希望在新世纪第一个十年结束前发布。与之相反的是,新标准直到2011年中旬发布。有几个技术报告直到现在才发布。一些编译器开始添加实验性的支持为新的特性。

     在2011年中旬,新的C++标准(产生C++11)完成了。Boost库对新标准产生了很大得影响,其中很多新的模块直接从Boost库借鉴而来。一些新的特性包括正则表达式的支持,一个完整的随机库,C++时间库,原子支持,标准线程库(直到2011C和C++缺少的),一个新的for循环语法支持函数式类似于其他语言的foreach循环。auto关键字,新的容器类,对unions和数组初始化列表更好的支持,以及可变参数模板。


翻译自:http://www.cplusplus.com/info/history/
C++历史发展概述 C++发明至今已经三十多年了,从最早的简单面向对象逐渐发展成为包含泛型、函数式、模板元等许多范式的复杂混合体,其中的每一个编程范式都可以自成体系,在开发过程中打出一片天地。二十年前,面向过程、基于对象是C++编程的主流范式;十年前,主流范式变成了面向对象+设计模式.而现在C++编程的主流范式则有“返璞归真”的趋势,过度使用虚函数的庞大类继承体系逐渐被摒弃,而使用泛型、函数式等新型范式开发精致的小类并给予良好的组合成为了大方向。 阅读详情

相关推荐

matinal:SAP 采购中形成的差异

如果库存足够会影响到物料。

matinal 當冬夜漸暖 。公众号:matinal 820

C++的发展历史、简介及应用

C++的发展:C++在1983年正式命名为C++,并在之后的几十年中不断发展壮大。C++与C的比较:C++与C语言有很多相似之处,但也有一些重要的区别。C++的起源:C++最初被称为“带类的C”,是在C语言的基础上添加了面向对象编程的特性。C++的名称中的“++”是从C语言中的“++”运算符中取得的,表示C++是C语言的一个增强版本。C++的作者:C++的创始人是丹尼斯·里奇(Dennis Ritchie)和贝尔实验室的团队。C++是一种编程语言,它是在C语言的基础上发展而来的。

超哥量化的博客 1880

ZYNQ出现问题及解决办法汇总(一直更新)

问题目录使用软件及开发板版本一,vitis在build project时卡住。二,Could not find FPGA device on the board for connection 'Local'三,FPGA configuration failed:DONE PIN is not high四,Could not find ARM device on the board for connection 'Local' 使用软件及开发板版本 开发板:MZ7XA-7020 软件:vitis2020.2(

qq_45057368的博客 1万+

C++发展历程

• std::optional 和 std::variant:std::optional 用于表示可能存在或不存在的值,std::variant 用于表示多种类型中的一种类型的值,增加了代码的灵活性和安全性。• 函数模板:定义了一组通用的函数,这些函数可以接受不同类型的参数,并根据参数的类型自动进行类型推导,生成相应的函数实例。• 三向比较运算符 <=>:用于比较两个值的大小关系,返回一个 std::strong_ordering 类型的值,表示小于、等于或大于的关系,方便实现自定义类型的比较操作。

2301_81656259的博客 2252

STM32HAL库 基于外部Flash+FatFs模拟U盘方式进行固件拷贝升级(详解)

STM32HAL库 基于外部Flash+FatFs模拟U盘方式进行固件拷贝升级

qq_36075612的博客 1万+

SAP 财务BAPI_ACC_DOCUMENT_POST批导的税务tax

最近遇到了关于SAP财务凭证批导要bapi:BAPI_ACC_DOCUMENT_POST增加税的功能要求,查阅了一众文献发现都不尽如人意,所以想着自己写一个趟过的雷吧。 一般前台sap的凭证是有自动计算税码的勾选框的,但是bapi却并没有这个字段。 实际操作过程中1.可以定义一个税额的结构,参考bapiactx09 2.在会计分录上传如果需要增加税码的时候,譬如总账gl,需要对应tax_code 3.通过CALCULATE_TAX_FROM_GROSSAMOUNT 计算出税额和acct_k...

qq_35640448的博客 3186

C++产生及发展历程

新手快速入门C++

m0_73552988的博客 3108

C#与西门子PLC通讯——新手快速入门

本文基于C# .Net Core和西门子博图TIA Portal V17搭建。由于手边没有西门子PLC实物,所以采用S7-PLCSIM Advanced V4.0作为模拟PLC,以实现0成本完成通讯测试实例。这篇入门笔记解决了新手第一次上手实践时遇到的坑,并且有意忽略了实际项目中会遇到的逻辑交互和更多的数据格式问题。

吾家有猫名探花的博客 2万+

c/c++历史-弥久恒新

c/c++知识分享之c/c++历史,1970~2023

技术需要分享 2997

某智能物流无人值守系统 ExportReport SQL注入漏洞复现

某智能物流无人值守系统 ExportReport存在SQL注入漏洞,未经身份验证的远程攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至在高权限的情况可向服务器中写入木马,进一步获取服务器系统权限。

0xSec 818

YOLOv8改进策略【Neck】| CVPR 2024 MFM(Modulation Fusion Module,调制融合模块):动态特征加权融合,突出关键特征抑制冗余

本文主要利用DCMPNet中的 MFM 模块优化 YOLOv8 的目标检测网络模型。模块通过动态调制特征融合过程,实现了对多尺度、跨层级特征的智能聚合。将其应用于的改进过程中,针对目标检测中边界特征与语义信息的互补性需求,缓解网络中浅层细节与深层语义融合不足的问题。Depth Information Assisted Collaborative Mutual Promotion Network for Single Image Dehazing在图像去雾网络中,不同层级和类型的特征包含着互补的信息(如浅层的

Limiiiing的博客 351

《C++初阶之入门基础》【C++的前世今生】

本文系统梳理了C++的发展历程,详述了Bjarne Stroustrup如何结合OOP思想设计出“C with Classes”,并于1983年正式命名为C++。通过关键版本演进(如C++98引入STL、C++11带来现代特性、C++20革新模块化编程),展现了C++从高效系统语言到多范式语言的蜕变。

序属秋秋秋的博客 4040

微信对话开放平台智能对话模块的几个亮点

微信AI首席科学家牛成公布了最新开放方案,并重磅宣布全面开放各层次 NLP 能力。具体说来,微信 AI 迈出了“三大步”: 以硬件合作为核心的智言小微硬件开放平台 2.0 正式亮相; 公开以对话开放能力为核心的微信对话开放平台; 全面开放以自然语言处理能力为核心的 NLP 基础技术平台。 参考:微信9年:张小龙指明方向,微信AI全面开放NLP能力 今天公开课上隆重介绍了...

素质云笔记 1万+

C++之今生前世

文章目录0 总结1 诞生2 C++的优缺点2.1 缺点:2.2 优点:2 目前使用群体3 C++ 204 C++之父介绍4.1 工作经历4.2 爱好4.3 建议4.3.1 平衡4.3.2 出色的程序员 0 总结 本次内容源自InfoQ技术实验室对C++之父Bjarne Stroustrup的一次采访【2019年Bjarne Stroustrup来中国上海出差之时】。 1 诞生 Bjarne Stroustrup刚工作进入贝尔实验(每年写一张纸来汇报自己这一年做了什么),原本想创建一个分布式系统,但是由于没有

韩江雪de 小屋 612

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C++的前世今生

什么是C++?可以说C++之所以成为C++,很大程度上是因为它是一种面向对象的计算机语言。 面向对象相对于面向过程简直是太优越了,这正是C++自出生以来就备受追捧的原因。当没有面向对象的编程思想时,人们编写程序都是用面向过程的思想的,比如实现1+1=2,很简单,写具体过程的算法即可,但是随着计算机技术的不断提高,人们对软件的期望越来越高,面向过程的编程已经很难满足复杂的软件编写了,因此出现了面向对

SYSU_yzt的博客 703

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【c++】c++背景(c++的前世今生)

【c++】c++背景(c++的前世今生)

m0_74722801的博客 3668

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C/Cpp 中 Hello World 的前世今生

在程序界,似乎有一个不成文的规定,不管是学啥,都要先写一个 Hello world, 要是写成功了,那就证明,你对这个东西已经了解了大半;要是失败了,那就得继续加油。 那么在 C/Cpp 世界里,一个 Hello World 的程序,究竟是如何把我们写的那三两行代码转变成一个输出呢?这里面代码是如何转化的,又是如何被搞成一个可执行文件,系统又是如何调用这个程序的呢? 书中总是告诉我们,一段代码...

卖鱼的小白菜的专栏 626

C/C++指针的前世今生

指针是一种抽象的思想,是一种数据类型,用于表示内存中的地址,就像int,double,string一样;指针变量是一种变量,用来存储地址数据。指针常量(T *const):指针的地址不能修改,指向的数据可以修改。常量指针(const T *):指向的数据不能修改,指针的地址可以修改。常指针常量(const T *const):指针的地址和指向的数据都不能修改。

m0_71489826的博客 2233

【C++】祖师爷赏饭吃之C++的前世今生

C++发展史,C++文档,C++的现实应用

Xie_sheng的博客 858

你好,C++(1)C++是什么?C++的“前世今生”

The world is built on C++.                                                ——HerbSutter the chairman of the ISO C++standards committee and chief native languages architect at Microsoft            

nihaoCPP的专栏 1186

【c++】随机数的前世今生 C++11标准前后

一直觉得C++随机数对日常的编程来说就像这句话***“食之无味,弃之可惜”***,还是花一点时间仔细了解一下吧。 前世: C++11标准出现前,无论c和都用下面的方法产生随机数。 #include <iostream> #include <stdlib.h> using namespace std; int main() { for(int i=0;i<10;i++...

breaver 631

C++的前世今生,你还觉得C++要被淘汰了么

有个著名的演讲视频,演讲者是Exceptional C++ 和 C++ Coding Standards 的作者、ISO C++ 委员会的Chair、C++/CLI首席架构师、Microsoft的软件架构师,他叫Herb Sutter,这个视频是 C++ and Beyond 2011上的一次公开演讲,题目是——Why C++? 我觉得他的演讲内容足够可以说明很多问题,所以,我把Herb的演讲幻...

zip rar 密码破解 - zip rar 7z密码忘记怎么办 450

C/C++的前世今生

既然有C语言,就有A语言,即所谓的ALGOL 60。之后再其基础上发展了CPL语言。 1967年,BCPL在A语言的基础上发展得来。也就是B语言。1972年,贝尔实验室设计者为新的语言去了BCPL的第二个字母,也就变成了C语言。类似的冷笑话层出不穷,比如说C++(即所谓的自然演进),C#(C#比C高出半个音阶)。C语言的第一个重大贡献是重写了unix。之后,由于C语言的强大可移植性(对那个时代而言

define_us的专栏 738
上一篇: 学习知识的一种思路
下一篇: C++的发展方向是对的嘛?
hackmind
博客等级 码龄16年 187粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值