1979年,C++之父 Bjarne Stroustrup 在偶然的机会中发现:要想开发大型软件且它能够高效运行,需要一个具有灵活和可拓展类型系统的编程语言。在当时,Simula语言的类、类层次结构和强静态类型检查是组织代码和管理复杂性的主要手段,而BCPL(C语言的祖先)的跨平台移植性很好。于是,Bjarne Stroustrup 产生了把二者特性结合起来的想法,因此C++在贝尔实验室诞生了。

C++是一门集面向过程、面向对象、函数式、泛型和元编程等多种编程范式于一身的复杂编程语言。青出于蓝而胜于蓝,除了具有C语言的所有特性之外,C++还有包括类、基本继承、内联、默认函数参数和强类型检查等重要功能。

1998年,已经广泛应用于软件开发行业的C++终于发布了第一个国际标准ISO/IEC 14882:1998,从此C++在编程领域势如破竹。

— 01 —

桌面时代的王者

20世纪80年代,计算机行业和硬件密不可分,整个编程界几乎被C和C++占据。C++既有面向对象的优势,又有与C语言不相上下的效率,因此在很多高性能的系统级软件、图形图像软件、桌面应用中都有它的身影。

在当时,编程语言并不多,C++凭着运行效率高的优势与C语言一起成为服务端软件。但C++并不仅限于底层的开发,因为有面向对象的优势,C++在图形视觉领域也颇受欢迎。同时,随着操作系统的广泛应用,基于桌面级别的软件基本都是采用C/C++开发的。

— 02 —

后生可畏

到了20世纪90年代初,工业领域的开发进入成熟期,计算机行业进入了互联网的Web时代,C++在编程语言领域中的领土逐渐被其他新兴的语言侵占。

首先是电子商务和社交网站的兴起,让Java迅速成为编程界的新秀,直至今日依旧常居编程语言排行榜第一位。

看到Java发展势头迅猛,微软也不甘落后,开发的.NET开发出来后,背靠Windows系统而稳步发展。那个时候的计算机行业就像一方沃土,即便有C/C++和Java无比强悍的编程语言存在,占据着很大的市场份额,但是像PHP、C#等这样的新兴编程语言依旧可以在这个行业中找到一席之地。

Web时代要求更高的灵活性,C++没有跟上。而伴随着互联网和移动互联网的“春雨”,一系列优秀的编程语言春笋般不断涌现,诸如PHP、C#、Ruby、Python等编程语言也逐渐成为程序员们的首选语言。C语言和C++的市场份额被这些新秀语言逐步挤压。

— 03 —

复兴之路

近年来,局势有所扭转。在大型游戏、工业机器人、智能装备等领域高速发展的时代,C++语言凭借着强大的设计能力和稳定的运行性能,在这些领域拥有了不可替代的优势。

从最近的编程语言排行榜来看,C++的排名正在不断提高,仅次于Java、C和Python。这个已经40多岁的老牌编程语言又将迎来新的转机。

2020年9月份,C++20国际标准草案获得一致通过,ISO C++20新标准在翘首期待中终于尘埃落定。

C++之父 Bjarne Stroustrup 表示:“C++ 20是自C++11以来最大的发行版,它将是C++发展史上的里程碑。”业界都相信C++ 20必将为系统级软件的开发、构建、设计带来深远的影响。

—04 —

C++的学习之道

和C语言相比,C++继承了C语言所有的语法和库函数,同时为了提高语言的封装、继承和多态,C++引入了类的概念。

从应用角度来看,C++多用于开发各种后台使用的算法和逻辑库。而C语言则更底层,主要用于开发更核心的算法、驱动程序和控制程序等。

不过,C和C++的学习路径大体相同,可以简单分为五大类:算法和数据结构、面向对象思想、基本语言知识、产品开发、与其他语言混合开发。在这个分类之下还有一些更细致的内容,如图所示:

c# 静态类_c++静态类_c 类中静态成员变量

C/C++是更快、更底层的语言,要想高效使用C/C++语言,还需要掌握更多的算法和数据结构的知识,以及操作系统和多线程的知识。尤其是操作系统的知识,因为程序最终要运行在操作系统上。例如,如何读取一个文件的时间属性,如何读取键盘的特定键,如何建立一个目录等,这些都与程序运行的平台(操作系统)有紧密的关系。

对这些知识了解得越多,就越能编写出高效、简洁的C/C++语言程序。如果要编写一个大规模的程序,还需要具备设计模式的知识。

除此之外,大中型的程序一般都是混合利用多种语言来开发的。这样就可以充分发挥各种语言的优点。例如,为了得到更好的界面,一般都会采用C#和Java进行开发,而核心的算法和靠近硬件的部分则需要采用C/C++语言编写。

要想真正融会贯通,一定要知道一些C++与其他语言混合开发的知识,例如C++/CLI, 或者是COM组件的知识。

C++的强大是众所周知的,但也是出了名的难学。能够给开发者极高自由度的编程语言,学习门槛往往也不低。因此,学习C++的过程是极为痛苦的,我们常听到还在入门阶段的朋友在苦恼:

看不懂:“C++的概念太难理解了,指针太容易搞混淆了。”

难坚持:“一开始学习的时候信心满满,学习计划列了一大堆,但是开始学习的时候却怎么也坚持不了了。”

没人教:“知道C++在编程圈应用很广泛,但是真正能把其中的知识点讲得清晰透彻的老师实在是太少了,周围好多自学的同学以最终却放弃了。”

必读好书

01

《C++ Primer Plus》

c++静态类_c# 静态类_c 类中静态成员变量

小异推荐:

没有任何编程基础,想学C++编程,怎么办?

别担心,就从这本畅销40多年,无数人选择的零基础自学C++入门图书开始!

这本书就是为初学者设计的,有无编程基础,都可以通过本书自学成才。不论你之前是什么学历,什么专业,什么背景,只要你跟着书本+视频,双管齐下,学习效果必定加倍,轻松入门不在话下!

毕竟不论是技术深度还是技术广度,以及针对自学用户设计的讲解方式,都在数个版本中得到了良好的验证。

而且c++静态类c++静态类,这本书的作者史蒂芬•普拉达也是《C Primer Plus》的作者,他也凭借《C++ Primer Plus》获得了计算机出版联合会1991年度How-to计算机图书奖提名。

小异看了这本书后,不由感慨,经典果然是经典,难怪有这么多人都推崇这本书。

02

《C++ Primer Plus 习题解答》

c++静态类_c# 静态类_c 类中静态成员变量

小异推荐:

《C++ Primer Plus(第6版)中文版习题解答》是超级畅销书《C++ Primer Plus(第6版)中文版》的配套习题答案,针对书中的复习题和编程练习,给出了解题思路和答案。

《C++ Primer Plus(第6版)中文版习题解答》共分为18章,每一章的主题与《C++ Primer Plus(第6版)中文版》完全一致。每章开篇采用思维导图的方式列出本章的知识点,然后对每章的重点内容进行了梳理总结,最后则对每章中的复习题和编程练习进行了分析并给出了解答思路,确保读者在彻底夯实理论知识的同时,进一步提升实际编程能力。

作为《C++ Primer Plus(第6版)中文版》的配套参考书,《C++ Primer Plus(第6版)中文版习题解答》特别适合需要系统学习C++语言的初学者阅读,也适合打算巩固C++语言知识或者希望进一步提高编程技术的程序员阅读。

—END—

每日话题:说说你第一次接触C++是在什么时候?

在留言区参与互动,并点击在看和转发活动到朋友圈,我们将选1名读者获得赠书1本,截止时间3月31日。

也欢迎加入异步书评群,不定时免费阅读异步新书。

异步书评群

c# 静态类_c 类中静态成员变量_c++静态类

———END———
限 时 特 惠:本站每日持续更新海量各大内部创业教程,一年会员只需128元,全站资源免费下载点击查看详情
站 长 微 信:jiumai99

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注