入“坑”C++系列之(一) C++的前世今生

《C++版本的“前世今生”与独特魅力》:此文为AI自动生成 从早期版本到 C++11、C++14、C++17 再到 C++20 等,陆续引入的自动类型推导、lambda 表达式、结构化绑定、概念、协程等特性,让 C++ 在保持高性能优势的同时,开发效率也得到了极大提升,编程体验越来越好,适用范围也越来越广。此后,惠普实验室开发的 STL(Standard Template Library,标准模板库)被提议并投票通过纳入 C++ 标准当中,尽管 STL 对 C++ 的扩展超出了其最初定义范围,还延缓了标准化进程,但无疑也极大丰富了 C++ 的功能。 阅读详情

前言

本文通过C语言与C++之间的一些对比,从而引出C++的一些基本思想。由于本人也是才入坑C++,所以对C++的特性目前不能解释得十分清楚,也难免有不足和错误之处,还望大神们多多指教,希望可以和对C++感兴趣的童鞋们共同进步。

C语言简介

C语言出生于20世纪70年代早期的贝尔实验室,当时的Dennis Ritchie为了开发UNIX操作系统,便开发出了经久不衰的C语言,曾经一度傲视群雄。
它是一种经典的面向过程的编程语言,致力于使问题满足语言的过程性。在我看来,C语言最大的优点便是更好地实现了结构化编程以及自顶向下的编程思想。再加上其最重要的指针特性,所以实现了操作顶层硬件的需求,且让程序变得更加灵活。

C++简介

虽然C语言已经算是一种很好的程序语言了,但是随着社会的进步,科技的发展,程序规模的不断扩大。面向过程的C语言已经开始显得力不从心了。所以,在20世纪80年代,同样在贝尔实验室,Bjarne Stroustrup基于C语言开发出来了C++。同样的地点,不同的时间,不同的人物,但是都开创了属于各自的时代。
由于C++是基于C语言开发出来的,所以当然也具有C语言的特性啦。除了C++新增的特性之外,其他的特性几乎都是相同的。所以,C语言开发的程序,也可以直接在C++的环境中运行。这算不算是符合向下兼容的开发准则呢?
而对于C++新增的特性而言,最著名的当属面向对象编程和泛型编程。这两个概念也将在后续的文章中经常露面,虽然现在对这两个概念的理解还只是冰山一角,但相信随着后续的学习,终有拨云见雾的一天。
上面我们说过,面向过程的目的是致力于使问题满足语言的过程性方法,而面向对象与之不同的是,其试图让语言来满足问题的要求。(PS:现在读起来都很绕口嘛)

两种语言一些不同的应用场景

就我目前所了解的领域,在实际应用中,C语言更加常见于底层开发中,比如:嵌入式驱动开发领域,而C++则更偏向于上层应用程序的开发,比如:上位机应用程序开发领域。

C++目前常用的协议标准

C++的标准主要为C++98和C++11,目前最新的便是C++11标准了。

总结

我们不能评判两种语言的优劣,只能选择最适合自己的东西!

c++的前世今生 C++的历史起源于1979年,当时Bjarne Stroustrup在AT&T贝尔实验室工作,他的目标是创建一种新编程语言,这种语言能够结合C语言的高效性和灵活性,同时加入面向对象编程(OOP)的特性以提高软件的可维护性和可扩展性。Stroustrup的工作最终导致了C with Classes的诞生,这是C++的前身。到了1983年,C with Classes正式更名为C++,标志着这门语言从C语言的一个增强版转变为一个独立的编程语言。 阅读详情

相关推荐

C++ L1-7前世档案

** L1-7 前世档案 ** 网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终点对应的那个结点。 现在我们把结论从左到右顺序编号,编号从 1 开始。这里假设回答都是简单的“是”或“否”,又假设回答“是”对应向左的路径,回答“否”对应向右的路径。给定玩家的一系列回答,请你返回其得到的结论的编号。 输入格式: 输入第一行给出两个正整数:N(≤30)为玩家做一次测试要回答的问题数量;M(≤100)为玩家人

qq_44631086的博客 1760

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

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

m0_74722801的博客 3667

MATLAB实战:64QAM通信系统仿真全流程解析(附误码率优化技巧)

本文提供了一份完整的64QAM通信系统MATLAB仿真实践指南。从系统架构设计、发射端格雷码映射与脉冲成形,到信道建模、接收端同步与均衡,详细解析了全链路实现流程。文章重点分享了误码率曲线与理论值偏差的排查清单和深度优化技巧,帮助工程师构建工业级精度的仿真模型,解决高阶调制系统仿真的核心难题。

jenkins8butler的博客 404

C++的前世今生

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

SYSU_yzt的博客 703

头歌 DNS协议分析第3关----DNS 报文分析

DNS 报文分析

qq_67667368的博客 4346

Mixly 数码管时钟

  本文是米思齐数码管图形化编程实验总结分享,走过路过的来看看吧,其中的不足望指出。 一、实验目的及要求 【实验一】实现滚动显示自定义字符串。 【实验二】实现显示自定义时间。 【实验三】实现显示秒表。 二、实验原理与内容 实现米思齐的数码管图形化编程。 三、实验软硬件环境 硬件:Arduino、TM1637数码管 软件:Mixly IDE 四、核心代码及实验效果如下所示 1.实现滚动显示...

weixin_44614199的博客 1647

c++ 的前世今生

C++ 编程语言的历史可以追溯到1979年,当时Bjarne Stroustrup(后面简称BS) 正在为他的博士学位工作。BS 曾近有幸用过Simula这种语言,通过名字可知道这种语言主要被模拟器使用。BS使用的是Simula的变种Simula67,这种语言被认为是第一个支持面向对象编程范式的语言。BS发现这种范式在软件开发中非常有用,但Simula在实际使用中速度非常慢。 ...

weixin_30348519的博客 212

脑机接口(BCI)从原理到开发实战 01|意念控制真的来了?一文看懂脑机接口的技术革命

类型定义典型应用主动式用户主动产生特定思维模式来控制设备运动想象(想象左手/右手移动)反应式用户被动接受外部刺激,系统检测大脑反应P300拼写器、SSVEP(稳态视觉诱发电位)被动式系统监测用户自发脑状态,不要求主动控制疲劳监测、情绪识别、注意力评估本系列后续文章将重点围绕主动式(运动想象)和反应式(P300/SSVEP)展开实战。脑机接口,这个曾经只存在于科幻中的概念,正在政策、资本、技术的三重驱动下,加速从实验室走向产业落地。2026年,注定是脑机接口发展史上浓墨重彩的一年。

小明的博客 1430

C/C++的前世今生

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

define_us的专栏 737

银河麒麟V10ARM架构服务器离线安装docker\nacos【附安装包】

本文分享了在银河麒麟ARM64操作系统上安装Docker和Nacos的完整过程。首先提供了Docker的自动化安装脚本,包含服务配置、存储路径设置等关键步骤,并给出了常用维护命令。接着详细介绍了通过Docker-compose部署Nacos的方法,包括镜像导入、配置文件修改、鉴权设置等注意事项,特别强调了密钥长度必须超过32个字符的要求。文章还提供了Nacos初次登录的注意事项,并预告了后续可能推出的Redis、Nginx等安装教程。所有配置文件和脚本均可直接下载使用,适合内网环境下国产操作系统的部署

weixin_39054697的博客 2344

PoE 的三大国际标准:PoE、PoE+、PoE++

很多人知道 PoE 能“一根网线,既供电又传数据”,但鲜少有人能说清楚:PoE 供电到底分几种标准?差别有多大?哪些设备要用 PoE,哪些必须上 PoE+ 或 PoE++?今天,我们就来一次彻底的“拆解”,把 PoE 的三大国际标准——讲得明明白白,顺便也帮你厘清网络工程中的常见“供电疑惑”。

网络技术联盟站 1547

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

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

序属秋秋秋的博客 4039

AI应用质量工程实践:从评估到监控的完整体系构建

在软件工程领域,质量保障体系是确保产品稳定可靠的核心机制,涉及度量指标、保障流程和工具链的完整闭环。随着生成式AI应用的快速发展,如何将传统软件工程中的质量门禁思想引入AI领域,成为工程实践的关键挑战。其核心原理在于构建可量化、可监控、可改进的质量评估框架,通过自动化测试、持续监控和反馈优化来管理AI输出的不确定性。这一技术价值在于将AI应用从原型阶段推向产品化,确保输出的一致性、安全性和可靠性。在实际应用场景中,开发者需要从功能性、非功能性、一致性和合规性四个维度构建评估体系,并借助LLM-as-a-Ju

weixin_28728279的博客 294

【SAP】前世今生系列(五)「ABAP的前世今生和未来」

在此前文章中我们了解了SAP公司主要产品的时间线,众所周知,SAP公司所有产品都是基于ABAP语言来开发的,本篇文章着重要介绍的是SAP公司产品最重要的基石——ABAP

Thunder Wang的博客 5343

YOLOv11改进策略【Neck】| SEAM:分离和增强注意模块,解决复杂场景下的小目标遮挡问题

本文记录的是利用 SEAM 模块优化 YOLOv11 的目标检测网络模型。的设计出发点在于解决复杂场景下的人脸遮挡问题,相当于是小目标被其他物体部分遮挡时,传统方法因特征缺失导致检测精度下降的问题。该模块通过增强未遮挡区域的特征响应并补偿被遮挡区域的信息损失,提升模型对遮挡小目标的检测能力。YOLO-FaceV2: A Scale and Occlusion Aware Face DetectorSEAM模块(Separated and Enhancement Attention Module)的设计出发点

Limiiiing的博客 2280

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

—如果我们要到某个陌生的地方去旅行,我们往往有很多疑问:这个地方有什么好玩的?在哪儿可以吃饭?在哪儿又可以住店?这时我 们只需要一张内容详尽的旅行地图就可以解决这些问题。同样地,对于即将进入C++世界的我们,心中同样也有着很多疑问:C++是什么?C++是怎么来的?它能做什么?而我又如何才能完成我的第一个C++程序?面对这些问题,我们所需要的同样是一张C++世界地图。它可以解答我们的这些问题,让我们清晰地认 识C++世界。

爱编程的鱼的博客 1509

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

m0_71489826的博客 2232

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

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

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 小屋 608

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

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

Xie_sheng的博客 858

Java的前世今生:从真空管到跨平台革命

对Java的历史进行一定概括

qq_31764115的博客 1293

extern C的前世今生

extern C的前世今生 文章目录extern C的前世今生**extern "C"的前世今生**==为什么不把include放进extern C中== extern "C"的主要作用就是为了==能够正确实现C++代码调用其他C语言代码。==加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。 由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类

ahelloyou的博客 190

C/Cpp 中 Hello World 的前世今生

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

卖鱼的小白菜的专栏 626

【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

UE4的前世今生

首发于 风口上的VR 关注专栏 登录 写文章 UE4的前世今生 杨定鹏 · 5 个月前 一句话简介:UE4是一家叫Epic Games的公司做的一个名叫unreal engline,中文名虚幻4的免费游戏引擎,免费还送源码哟亲 Epic Games Epic Games是家不好好做游戏的游戏公司,他们做了一堆游戏

痞子龙3D编程 1万+
上一篇: 对寄存器的理解
下一篇: 入“坑”C++系列之(二)从Hello World开始说起
「已注销」
博客等级 码龄7年 49粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值