【C++入门(一)】:详解C++语言的发展及其重要性

个人头像
🎥 屿小夏 : 个人主页
🔥个人专栏 : C++入门到进阶
🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 🌤️什么是C++
  • 🌤️C++的发展史
  • 🌤️C++的重要性
    • ☁️语言的广泛度
    • ☁️C++的领域
      • ⭐操作系统以及大型系统软件开发
      • ⭐服务器端开发
      • ⭐游戏开发
      • ⭐嵌入式和物联网领域
      • ⭐数字图像处理
      • ⭐人工智能
      • ⭐分布式应用
      • ⭐其他
  • 🌤️学习c++的好处

在这里插入图片描述

🌤️什么是C++

C语言适合处理较小规模的程序,但对于复杂问题和大规模程序不太适合。为了解决这一问题,20世纪80年代提出了面向对象编程思想,并引入了支持面向对象的程序设计语言。

1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了C++。

因此:C++是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计

咱们的C++祖师爷:
在这里插入图片描述


🌤️C++的发展史

​ 1979年,贝尔实验室的本贾尼等人试图分析unix内核的时候,试图将内核模块化,于是在C语言的基础上进行扩展,增加了类的机制,完成了一个可以运行的预处理程序,称之为C withclasses。语言的发展就像是练功打怪升级一样,也是逐步递进,由浅入深的过程。我们先来看下C++的历史版本:

阶段内容
C with classes类及派生类、公有和私有成员、类的构造和析构、友元、内联函数、赋值运算符 重载等
C++1.0添加虚函数概念,函数和运算符重载,引用、常量等
C++2.0更加完善支持面向对象,新增保护成员、多重继承、对象的初始化、抽象类、静 态成员以及const成员函数
C++3.0进一步完善,引入模板,解决多重继承产生的二义性问题和相应构造和析构的处 理
C++98C++标准第一个版本,绝大多数编译器都支持,得到了国际标准化组织(ISO)和美 国标准化协会认可,以模板方式重写C++标准库,引入了STL(标准模板库)
C++03C++标准第二个版本,语言特性无大改变,主要:修订错误、减少多异性
C++05C++标准委员会发布了一份计数报告(Technical Report,TR1),正式更名 C++0x,即:计划在本世纪第一个10年的某个时间发布
C++11增加了许多特性,使得C++更像一种新语言,比如:正则表达式、基于范围for循 环、auto关键字、新容器、列表初始化、标准线程库等
C++14对C++11的扩展,主要是修复C++11中漏洞以及改进,比如:泛型的lambda表 达式,auto的返回值类型推导,二进制字面常量等
C++17在C++11上做了一些小幅改进,增加了19个新特性,比如:static_assert()的文 本信息可选,Fold表达式用于可变的模板,if和switch语句中的初始化器等
C++20自C++11以来最大的发行版,引入了许多新的特性,比如:模块(Modules)、协 程(Coroutines)、范围(Ranges)、概念(Constraints)等重大特性,还有对已有 特性的更新:比如Lambda支持模板、范围for支持初始化等
C++23制定ing

C++还在不断的向后发展。但是现在主流使用还是C++98和C++11,所以不必追求过高的版本.


🌤️C++的重要性

☁️语言的广泛度

在这里插入图片描述

这张图是TIOBE 公布的2023年8月的编程指数。

​ TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、 课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)进行计算。

通过上图的排名可以直观的看出,在市场份额中使用的人数依旧是名列前茅。

注意:排名不能说明那个语言好,那个不好,每门编程语言都有适应自己的应用场景。

☁️C++的领域

⭐操作系统以及大型系统软件开发

C++被广泛用于开发操作系统和大型软件,如Photoshop、Office和Java虚拟机。这主要是因为其高性能和对硬件的直接控制能力。

⭐服务器端开发

后台开发:C++在后台开发中扮演重要角色,尤其在一些基础组件、中间件、缓存和分布式存储等方面。此外,在对实时性要求较高的领域,如游戏服务器、流媒体服务器和网络通讯中也广泛应用。

⭐游戏开发

几乎所有PC平台的游戏都是使用C++编写的,包括诸如魔兽世界、传奇、CS等。许多游戏引擎也是基于C++开发的,如Cocos2d、虚幻4和DirectX。

⭐嵌入式和物联网领域

C++在嵌入式开发中扮演着重要角色,包括单片机开发、系统开发、驱动开发以及应用和中间件层面的开发。它被用于智能手环、摄像头、扫地机器人、智能音响等设备。

⭐数字图像处理

在数字图像处理领域,C/C++被广泛用于开发图像处理算法库和开源库,如OpenCV和OpenGL。

⭐人工智能

尽管Python在人工智能领域应用广泛,但C++在人工智能背后的深度学习算法等核心方面也发挥着重要作用。

⭐分布式应用

许多分布式框架、文件系统和中间件等都是使用C++开发的,以提高性能和并发能力。

⭐其他

另外C++,在科学计算、浏览器、流媒体开发、网络软件等都是C++比较适合的场景,作为一名老牌语言的常青树,C++一直霸占编程语言前5名,肯定有其存在的价值。

🌤️学习c++的好处

学习C++可以使你具备一种强大的编程语言,能够解决各种复杂的问题并开发高性能的应用程序。无论你是想成为一名优秀的软件工程师,还是仅仅对编程感兴趣,C++的学习将为你的职业发展和个人兴趣带来巨大的好处。

image-20231229145151002

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2662055.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

java在线票务系统(选座)Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 在线票务系统(选座)管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean(mvc模式),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要…

从方程到预测:数学在深度学习中的作用

图片来源 一、说明 深度学习通常被认为是人工智能的巅峰之作,它的成功很大程度上归功于数学,尤其是线性代数和微积分。本文将探讨深度学习与数学之间的深刻联系,阐明为什么数学概念是该领域的核心。 二、数学框架 从本质上讲,深度…

腾讯云轻量应用服务器性能差吗?

腾讯云轻量应用服务器性能如何?轻量服务器CPU采用什么型号?处理器计算性能如何?轻量应用服务器会不会比云服务器CVM性能差?腾讯云服务器网txyfwq.com详解轻量CPU型号主频、处理器性能、内存、公网带宽、月流量、不同地域速度测试、…

腾讯云价格计算器,一键计算精准报价,好用!

腾讯云价格计算器:可以计算腾讯云服务器不同CVM实例规格、CPU内存、公网带宽和系统盘费用明细表,可以一键计算出精准报价明细表,腾讯云服务器网txyfwq.com分享大家腾讯云服务器价格计算器入口链接、使用方法及限制说明: 腾讯云服…

【持续更新ing】uniapp+springboot实现个人备忘录系统【前后端分离】

目录 (1)项目可行性分析 (2)需求描述 (3)界面原型 (4)数据库设计 (5)后端工程 接下来我们使用uniappspringboot实现一个简单的前后端分离的小项目----个…

5天一更新的卫星影像数据来自哪里?

这里我们就来分享一下,5天一更新的卫星影像源来自哪里。 哥白尼计划 在开始讲卫星影像数据源时,我们先来了解一下什么是哥白尼计划。 哥白尼计划(Copernicus Programme),又称全球环境与安全监测计划(Glo…

HCIA-Datacom题库(自己整理分类的)——ARP协议【完】

一、单选 1.ARP 属于哪一层协议? 数据链路层 网络层 物理层 传输层 2.ARP请求是____发送的 点播 广播 组播 单播 关于ARP报文的说法错误的是? ARP请求报文是广播发送的 ARP报文不能被转发到其他广播域 ARP应答报文是单播方发送的 任何链路层协议都需…

【并发编程篇】解决线程安全问题 — CopyOnWriteArraySet

文章目录 🍔情景引入🌺报错了,解决方法⭐方法一⭐方法二 🍔情景引入 我们看下面这段代码 运行后报错了 我们看看报错原因 报错原因是并发修改异常 🌺报错了,解决方法 ⭐方法一 我们使用其他工具类&am…

【领域驱动设计】模式--通用语言(Ubiquitous language)

一.前言 有道无术术可求,有术无道止于术。方法论的形成都是为了让我们能够更高效,系统的解决问题,而不至于遇到问题不知所措。 二.通用语言的必要性 相信大家在实际的软件开发流程过程中,经常会遇到参照 Prd原型 编码出的系统与实…

骑砍战团MOD开发(27)-module_tableau_materials.py材质

一.配置材质资源 OpenBrf寻找对应材质资源. tableau配置材质资源 ("round_shield_1", 0, "sample_shield_round_1", 512, 256, 0, 0, 0, 0,[(store_script_param, ":banner_mesh", 1),(set_fixed_point_multiplier, 100),(init_position, pos1),…

NFC物联网智能购物车设计方案

智能购物车是综合利用计算机网络、射频识别技术、数据库技术、单片机于一体的设备具有先进性、便于管理性、经济性、普适性。基于NFC (Near Field Communication,近场通信)技术的智能购物车,能够大幅缩短结账排队时间,实现“无感支付”。NFC是…

【黑产攻防道04】利用pow工作量证明降低黑产的破解效率

上一期我们提到,黑产有三种常见的破解方式: 1.通过识别出验证码图片答案实现批量破解验证,即图片答案识别; 2.在了解通讯流程之后直接携带相关参数发请求,即协议破解; 3.使用各种客户端模拟器来模拟真人…

高校实验室安全管理视频监控系统设计:AI视频识别技术智能分析网关V4的应用

一、背景 实验室作为科研与教学的核心场所,其重要性不言而喻。高校实验室由于其开放性与多样性,安全管理尤为重要。高校实验室的安全管理,不仅是保障科研与教学质量的基础,更是校园安全的重要组成部分。一旦发生安全事故&#xf…

FPGA 底层资源介绍

Xilinx FPGA底层资源介绍 本文转载自:瓜大三哥微信公众号 XILINX FPGA 芯片整体架构如下所示,整个芯片是以BANK进行划分的,不同的工艺、器件速度和对应的时钟具有不同的BANK数量(下面截图是以K7325tffg676为例)&…

外汇天眼:仿冒OANDA安达──诓称分析师带领稳赚不赔,恶意爆仓再三骗入金

最近有考虑做美股、期货、外汇的投资人请注意,近期外汇天眼收到一位台湾投资人爆料,分享自己误用仿冒OANDA安达的假券商而损失新台币50万元,以下让我们一起了解这个诈骗案件的详细经过与手法。 今年7月底,受害者在社交平台IG上被…

解决Github无法上传>100M文件——只需两行代码

文章目录 合作推广,分享一个人工智能学习网站。计划系统性学习的同学可以了解下,点击助力博主脱贫( •̀ ω •́ )✧ 废话不多说,如果在githubpush文件太大时,会报错:this exceeds GitHub’s file size limit of 100.…

SLAM PnP问题以及相关基础知识

目标泛函 目标泛函是在优化问题中使用的一种数学工具,目标泛函是一个函数,它将一个或多个函数映射到一个实数。它常用于描述需要最小化或最大化的函数。在优化问题中,我们通常希望找到使得某个特定函数取得最大值或最小值的变量值。目标泛函…

喜讯|极狐GitLab 通过信通院汽车软件研发效能成熟度模型能力

12 月 27 日,在由中国信息通信研究院(下称信通院)、中国通信标准化协会联合主办的2023系统稳定性与精益软件工程大会-汽车云质效专场峰会上,信通院发布了“2023年下半年汽车云评估结果”,极狐GitLab 一体化 DevOps 平台…

c 语言, 随机数,一个不像随机数的随机数

c 语言, 随机数,一个不像随机数的随机数 使用两种方式获取随机数,总感觉使用比例的那个不太像随机数。 方法一: rand() 获取一个随机数,计算这个随机数跟最大可能值 RAND_MAX(定义在 stdlib.h 中&#xf…