【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://www.hqwc.cn/news/309021.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法刷题:最大异或对(Trie树扩展)、食物链(并查集扩展)

目录 引言一、最大异或对(Trie树扩展)1.题目描述2.解题思路3.代码实现4.测试 二、食物链(并查集扩展)1.题目描述2.解题思路3.代码实现4.测试 引言 这两个扩展题能够让我们更加的熟悉Trie树和并查集的使用,这两道题可以…

Linux:apache优化(2)—— 网页传输压缩

网页传输压缩 客户端在请求httpd服务器数据,httpd服务器在返回数据包给客户端时,先对返回的数据进行压缩,压缩之后再传输 作用:配置 Apache 的网页压缩功能,是使用 Gzip 压缩算法来对 Apache 服务器发布的网页内容进行…

【Spring】spring的容器创建

目录 控制反转IOC 依赖注入DI 创建spring的容器方式: 思考: spring整合Junit4 控制反转IOC 把对象的创建和对象之间的调用过程,交给Spring管理,IOC是容器,是思想。!!! 依赖注入…

关于ISI、SCI、EI、IEEE、Elsevier、Springer, etc的理解

文章目录 0、一文搞定 学术文章发表 基本概念1、关于会议组织者、出版商、科研工作者的关系1.1 SCI到底是什么1.2 EI到底是什么1.3 EI-SCI-收录-检索-出版商-会议组织者关系 2、关于ISI、SCI 、汤森路透、路透社的关系2.1 ISI web of knowledge2.2 Master Journal List2.3 Jour…

按摩上门预约小程序源码系统 开发组合:PHP+MySQL 附带完整的搭建教程

现代生活节奏的加快,人们越来越注重健康与放松。按摩作为传统的舒缓方式,市场需求逐年上升。然而,传统的按摩服务预约方式较为繁琐,用户需拨打热线电话或前往实体店进行预约,这无疑增加了用户的操作成本。因此&#xf…

vscode 支持c,c++编译调试方法

概述:tasks.jason launch.json settings.json一定要有,没有就别想跑。还有就是c 和c配置有区别,切记,下文有说 1.安装扩展插件。 2.安装编译器,gcc.我用的是x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z &#xf…

nginx日志常见报错解决

目录 一:报错 二:php查看后台内容有的栏目出现502? 三:413 Request Entity Too Large? 四:Request Header Or Cookie Too Large 400 一:报错 upstream prematurely closed connection while reading r…

35.搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例 2: 输入:…

docker-compose Install TeamCity

前言 TeamCity 是一个通用的 CI/CD 软件平台,可实现灵活的工作流程、协作和开发实践。允许在您的 DevOps 流程中成功实现持续集成、持续交付和持续部署。 系统支持 docker download TeamCity TeamCity 文档参考项目离线包百度网盘获取

117基于matlab的短时傅里叶变换(STFT)、小波变换(WT)、同步压缩变换(SST)、瞬态提取变换(TET)进行时频分析

基于matlab的短时傅里叶变换(STFT)、小波变换(WT)、同步压缩变换(SST)、瞬态提取变换(TET)进行时频分析。程序已调通,可直接运行。 117时频分析短时傅里叶变换 (xiaohong…

python基础-01

文章目录 前言一、python中的注释二、变量的数据类型1.Number(数字)2.Boolean(布尔类型)—— True 和 False3.String(字符串)4.List(列表)5.Tuple(元组)6.Dic…

javaWeb学生信息管理系统2

一、学生信息管理系统SIMS 一款基于纯Servlet技术开发的学生信息管理系统(SIMS),在设计中没有采用SpringMVC和Spring Boot等框架。系统完全依赖于Servlet来处理HTTP请求和管理学生信息,实现了信息的有效存储、检索和更新&#xf…