(每日一题)Part3C++的发展史1979年

如果你准备学习C++的话,那么学习之前最好先了解一下它的发展历史以及学好这门编程语言的重要性。

(每日一题)Part3C++的发展史1979年

第一部分前言

如果你打算学习C++,那么在学习之前最好先了解一下它的发展历史以及学习这门编程语言的重要性。

Part2什么是 C++?

C语言是一种结构化、模块化的语言,适合处理较小规模的程序。 对于复杂问题和需要高度抽象和建模的大型程序,C语言并不适合。 为了解决软件危机,20世纪80年代,计算机行业提出了OOP(object orientprogramming:面向对象)的思想,支持面向对象的编程语言应运而生。

(每日一题)Part3C++的发展史1979年

这里必须提到一个人:Bjarne Stroustrup 博士。 1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩展了面向对象的概念,发明了一种新的编程语言。 为了表达该语言与C语言的渊源关系,将其命名为**C++**。 因此:C++是基于C语言的。 它可以执行C语言的过程式编程、以抽象数据类型为特征的基于对象的编程以及面向对象的编程。

Part3C+++的发展历史

1979年,贝尔实验室的Benjani等人在尝试分析Unix内核时,试图将内核模块化,于是在C语言的基础上进行了扩展,增加了类机制,完成了一个可以运行的预处理程序。 ,将其称为带有类的 C。 语言的发展是一个由浅入深的过程。 我们先来看看C++的历史版本。

舞台内容

C 与类

类和派生类、公共和私有成员、类构造和销毁、友元、内联函数、赋值运算符重载等。

C++1.0

添加虚函数、函数和运算符重载、引用、常量等概念。

C++2.0

改进了对面向对象、新的受保护成员、多重继承、对象初始化、抽象类、静态成员和 const 成员函数的支持

C++3.0

进一步改进,引入模板解决多重继承带来的二义性问题以及相应构造和销毁的处理

C++98

第一版C++标准,得到大多数编译器的支持,并得到国际标准化组织(ISO)和美国标准协会的认可,以模板方式重写了C++标准库,引入了STL(标准模板库)

C++03

C++标准第二版在语言特性上没有大的变化,主要是:修复错误和减少多样性。

C++05

C++标准委员会发布了计数报告(技术报告,TR1),正式更名为C++0x,计划在本世纪第一个十年的某个时间发布。

C++11

添加了许多功能,使 C++ 更像一门新语言,例如:正则表达式、基于范围的 for 循环、auto 关键字、新容器、列表初始化、标准线程库等。

C++14

对C++11的扩展主要集中在修复C++11中的漏洞和改进,例如:泛型lambda表达式、自动返回值类型推导、二进制文字常量等。

C++17

C++11 中进行了一些小的改进,添加了 19 个新功能,例如:static_assert() 的可选文本信息、变量模板的折叠表达式、if 和 switch 语句中的初始值设定项等。

C++20

自 C++11 以来最大的版本,引入了许多新功能,例如:模块、协程、范围、约束等主要功能,以及对现有功能的更改更新:例如 Lambda 支持模板、范围支持初始化, ETC。

C++23

制定

C++仍然在向后发展。 不过:目前公司主流使用还是C++98和C++11,所以大家没必要追求最新,重点掌握C++98和C++11。 工作之后,随着对C++的理解不断加深,有更新的功能需要时间去思考。

Part4 C++++4.1 语言的广泛使用的重要性

TIOBE 发布 8 月份编程语言排名:Python 位居榜首,C/C++ 分列二三位。 在30多年的发展中,C/C++几乎一直处于前5名。

(每日一题)Part3C++的发展史1979年

TIOBE 编程语言社区排名是编程语言流行趋势的指标,每月更新一次。 该排名基于互联网上经验丰富的程序员、课程和第三方供应商的数量。 排名是使用谷歌、MSN、雅虎、维基百科、YouTube、百度等知名搜索引擎计算的。

4.2 工作领域

C++涉及的工作领域还是很广的,如下:

操作系统和大型系统软件开发:几乎所有的操作系​​统都是用C/C++编写的,很多大型软件也几乎都是用C++编写的,比如Photoshop、Office、JVM(Java虚拟机)等。是性能。 高,可以直接控制硬件;

服务器端开发:后端开发主要关注业务逻辑的处理,即后端响应前端请求。 现在主流使用Java,但是内卷化严重。 大厂家可能有C++后端开发,主要做一些基础组件、中间件、缓存、分布式存储等,服务器端开发比后端开发更广泛,包括后端开发。 一般实时性要求较高的,如游戏服务器、流媒体服务器、网络通信等,都是用C++开发;

游戏开发:PC平台上的游戏几乎都是用C++编写的,如:魔兽世界、传奇、CS、卡丁车赛车等。市面上相当多的游戏引擎是基于C++开发的,如:Cocos2d、 Unreal 4、DirectX等。三维游戏领域的计算量非常巨大,底层数学都是矩阵变换。 如果想要精美的画面、丰富的内容、实时的游戏性能,这些高难度的需求就只能选择C++语言了。 比较知名的厂商:腾讯、网易、完美世界、巨人网络等;

嵌入式及物联网领域:嵌入式是指在机器或电子设备内部嵌入具有计算能力的主控板来控制这些设备。 例如:智能手环、摄像头、扫地机器人、智能音箱等。说到嵌入式开发,大家最能想到的就是单片机开发(即在8位、16位或32位上进行开发)位微控制器产品或裸机)。 嵌入式开发除了微控制器开发外,还包括SOC片上、系统级、驱动级、应用程序、中间件级开发。 常见职位包括:嵌入式开发工程师、驱动开发工程师、系统开发工程师、Linux开发工程师、固件开发工程师等。一些知名厂商,如:以华为、vivo、oppo、小米为代表的手机厂商; 以紫光展锐、乐鑫为代表的芯片厂商; 大疆、海康威视、大华、视源股份等都有自己的终端业务厂商; 以及海尔、海信、格力等传统家电行业。 随着5G的普及,物联网(即万物互联)也成为一股新兴力量。 例如阿里巴巴地勤、腾讯地勤、京东、百度、美团等都有硬件相关的业务部门。

数字图像处理:数字图像处理涉及大量的数学矩阵运算,需要较高的CPU计算能力。 主要的图像处理算法库和开源库都是用C/C++编写的,如:OpenCV、OpenGL等,著名的Photoshop就是用C++编写的。

人工智能:说到人工智能,大家第一个想到的就是Python。 人们认为,要学习人工智能,就需要学习Python。 这是一个误解。 python有比较丰富的库。 您可以使用python快速构建神经网络,填写参数并导入数据。 模型已经开始训练,但人工智能背后的深度学习算法核心仍然是用C++编写的。

分布式应用:随着近年来移动互联网的兴起,各个应用的数据量不断增加; 后端架构必须不断提升性能和并发能力,以应对大信息时代的到来。 在分布式领域,很多分布式框架、文件系统、中间组件等都是用C++开发的。 Hadoop生态系统中对分布式计算影响很大的几个重量级组件:HDFS、zookeeper、HBase等也是基于Google用C++实现的GFS、Chubby、BigTable。 包括分布式计算框架MapReduce,Google首先是用C++实现的,然后就有了开源的Java版本。

除了上述领域外,科学计算、浏览器、流媒体开发、网络软件等都是C++比较适合的场景。 作为一门古老语言的常青树,C++ 一直占据编程语言前 5 位。 一定还有其他人。 存在的价值。

4.3 校园招聘情况

我们来看看腾讯2024年校招情况:

(每日一题)Part3C++的发展史1979年

我们来看看后端开发需要什么条件:

(每日一题)Part3C++的发展史1979年

其中包括掌握至少一种开发语言。

Part5如何学习C++?

既然C++这么重要,那么我们怎样才能学好它呢?

(每日一题)Part3C++的发展史1979年

5.1 看看别人如何学习

以下引自《程序员》2010年8月号发表的拙文《Behind the Power of C++》的最后一段: C++的缺点之一是它比许多语言更复杂、更难学习和掌握。 很多人说学习C语言只需要一本K&R《C程序设计语言》,但C++的书籍数不胜数。

在此分享一些学习经验。 个人认为学习C++可以分为4个层次:

第一级,C++基础:选一本入门书,比如《C++ Primer》、《C++大学教程》或者Stroustrup写的经典《C++程序设计语言》或者他一年写的新作《C++程序设计原理与原理》半年前。 练习》,一般的C++课程也到此为止。另外,还有《C++标准库》和《C++标准库扩展》可供参考;

第二个层次,正确高效地使用C++:这个层次需要自学。 只有读完《(更多)有效C++》、《(更多)例外C++》、《有效STL》和《C++编程规范》,你才能进入专业C++开发之路;

第三层次,深入解读C++:全局问题可以阅读《C++对象模型深入探索》、《不完美的C++》、《C++沉思录》、《STL源代码分析》。 要挑战您的智商,您可以阅读有关模板和模板元素的内容。 《C++模板》、《C++设计新思维》、《C++模板元编程》等编程书籍;

第四层次,学习C++:阅读《C++语言的设计与演化》、《程序设计的本质》(包括STL设计背后的数学基础)、C++标准文档《ISO/IEC 14882:2003》、 C++ 标准委员会的提案 有关 C++ 的书籍和报告、学术文献。 你对此感到困惑吗? 然而,C++只是软件开发的一部分。 仅靠语言无法解决商业和工程问题。

另外,建议读者不要坚持几年内“彻底学习C++知识”。 当他们达到第二级时,他们可以从实际工作经验中学习,只有有兴趣才慢慢继续学习更高层次的知识。 学习C++虽然困难,但也相当有趣且令人满意。 学习需要不断的思考和成果的积累,而这需要时间的积累。

(每日一题)Part3C++的发展史1979年

当然,上面只是这种图片的恶搞。 学习一门技术需要很长时间。 如图中的第三张和第四张所示,你需要十年的时间不断尝试并变得更好。 总结错误中的经验和教训,在项目开发过程中与他人交流、取长补短,锻炼自己。 只有这样你才能真正学习。

5.2 如何学习C++?

通过上面的介绍,相信大家都有了一定的了解。 C++的语法特点纷繁复杂,经典书籍种类繁多。 那么应该如何学习呢?

多总结:知识点的理解是复习的法宝,一定要做好笔记;

中后期绘制思维导图总结。 思维导图可以帮助我们更好的组织结构;

多读点书。 入门阶段,找本简单、薄薄的书可以快速入门。 《C++编程》相当合适。 您可以轻松快速地了解C++的语法特征。 当你学了一半以上的C++之后,继承和多态大概就学完了。 ,建议阅读《Effective C++》。 本书告诉你如何以建议的方式编写更好的C++程序。 读和不读有很大的区别; 《STL源码分析》六大组成部分一一分析。 读完后,你会对STL的设计框架和内部实现原理有更深入的了解,在面试时可以轻松与面试官较量; 《深入探索C++对象模型》会让你更深入地理解C++语法设计原理,一些容易混淆的知识点也能读懂。 然后内心就清楚了;

更频繁地回答问题。 学习肯定离不开回答问题。 回答问题也是查漏补缺的一种方式。

单片机

一个嵌入式渣渣的考研经验,你值得拥有!

2024-2-4 3:01:09

单片机

什么时候用嵌入式Linux和单片机(stm32)开发的区别

2024-2-4 4:01:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索