因为有些伙伴对C++并不了解,所以这里就简要介绍一下。
很多人对C++语言都存在误解,以为C++就是C语言的扩展,包括我自己,最开始学习C++时也是这么认为的,一是因为名字太像了,然后C++面向过程部分,基本上如出一辙,各种思想基本一致,也难怪初学者会这么想。然后后面多了面向对象部分以及一些其他高级的内容,所以就理所当然的认为是C语言的扩充,后来直到深入学习后,也看到了大师们的看法,结合自己的思考,才真的体会到这种误解了。
免费学习资料,免费学习视频,免费直播课程,专业解答, C语言学习交.流群589348389
C语言的灵魂是指针,掌握并灵活运用指针,C语言你可以说是学会了。但是,C++中,指针只不过是其中很小的一部分,我们不能否认指针在C++的重要性,但是,指针已经不是C++的核心了,而只是基础的部件而已。从这来看,C++确实不是C语言的扩展了。C++是借鉴了C语言,从C语言发展而来,但是C++走的太远太远,以至于变样了,回到家里,C都有点认不得它了。C++已经发展成了一门全新的语言了。
C++的核心是面向对象、模板和泛型编程。面向对象和泛型编程在思想体系中有一点点的冲突,对象是将数据封装成一个整体,有对象的方法来操作,而泛型编程却是使数据和方法分离,中间使用一个桥梁,让数据和方法进行连接操作,使操作更加灵活和强大。泛型编程在C++标准模板库STL中体现的淋漓尽致。
但是,这面向对象和泛型编程思想却是不统一的,因此也就有人在批评C++的发展是不是有点混乱,有点自相矛盾不成体系,有点四不像。其实,从面向过程结合面向对象,C++就已经有点想通吃了,想做到一个语言无所不能,以至于后面的泛型编程的出现。当然,各部分之间是有联系的,不然就真的不能成为一个体系了,只不过联系不太紧密,比较疏松罢了。也正是C++想大一统的想法,才导致C++变得复杂,让很多初学者望而却步。这也是很自然的事情。
但是,话说回来,要真正学得很深入,不管是什么语言,都是要学很多东西的。只不过一个顺序而已。
Java是纯面向对象语言,上手也快,但是要真正深入,同样要会面向过程,要懂得泛型编程等等,后面照样也是要花大量时间深入的,而C++只是上手比较难,但是上手后,一切都顺利了。想想,C++有点一站全的意思,其他语言有的,它都有,只不过一些概念名称不一样而已。C++学会了,其他语言几乎可以秒掉。当然C++要学得很深入。
虽然C++是很强大,但是前期的准备是要好的,这就是我为什么总是强调基础的重要性,C++要的要的是这个。C++从底层做起,没有扎实的基础,很难撑得起一片天空,所以要花大量时间学习C++的基础,基础学好,高级的特性,以及更高层的思想就能够轻松拿下。而其他语言就上手容易,但是深入很难,各种语言,到达终点的路径是一样长的,只是一个前紧后松和一个前松后紧的过程罢了。
所以在选择语言时,C++作为长远的发展,几乎是最好不过的一个选择了。当然这个只是建议。所以,想学好C++,必须脚踏实地,沉下心来学习,不能急躁,否则学不下去,也学不好,到时候说C++学了没用,那就是你自己的不对了。C++语言里,没有做不到的,只有想不到的。C++同时也是学无止境的,C++中无高手,是一些大师的信仰。但是,这个所谓的高手,肯定是那种出神入化的,
还有一点,提醒一下,目前的操作系统,基本上是用C和C++以及汇编语言写的,Windows系统中,程序的运行,首先是运行C运行库,然后再启动程序的入口点函数,也就是所谓的主函数。主函数退出,程序也并没有真的退出,而是调用了C运行库,最后才终止的。具体过程,以后大家深入了必然会了解到。
在此只是给大家一个信号,C++和C都是很有前途的,不要怀疑。本人是建议学C++的,既然选择了一门语言,就要坚持踏实的学下去,不要有任何犹豫,有没有用就看自己学的怎么样,而不是语言本身的问题。
C++称霸的领域:游戏、HPC、编译器、金融财务领域等等
如果不想把时间全用在增删改查之类的实现上,也许你可以考虑学习C++语言,并选择一个领域。下面我会给出一些建议。
游戏行业:几乎所有3A游戏都是使用C++编写的。大众公认电子游戏的开发者是软件行业里回报最高的工作之一,也是需求量最大的领域之一。因为速度非常重要,所以编写高效的代码就是最基本的要求。除了要懂C++之外,精通游戏开发更应注重理论与模式的钻研,而不限于特定的API或者Library。通常还必须具备高超的图形与数学技能,这些知识足够你活到老学到老。
HPC:以极限速度处理数据,要求对底层硬件有深刻的理解,这类知识可以直接应用在语言中。通用图形处理器(GPGPU)及CUDA、OpenCL之类的并行计算框架的出现,引发了对有这类技术的C++程序员的需求。如果深入到科学计算领域,还有很多能做的工作。不知你是否听说过机器学习?这是当今的热门话题。
编译器:LLVM项目如此成功,以致于很难找到一种既未使用LLVM库编写前端,也没有使用LLVM生成字节码的流行语言,而这些全都是C++。尽管编译器是以各种语言编写而成,但其背后的实现原理是相同的。我们使用优化器、静态分析程序、调试程序、标准库、链接器以及所有其他相关的工具来工作。
除此之外,金融领域也有很多工作需要有能力编写低延迟代码的程序员。在这个领域,数学背景也是一大加分亮点。该领域的大多工作可能都涉及到开发与维护高频使用的交易平台。另外如果不想挂着程序员的名头,这个领域也是很棒的选择。可以说负责设计并实现金融数学模型的宽客(Quant)职位是所有程序员中最有可能获得高额奖励的。
免费学习资料,免费学习视频,免费直播课程,专业解答, C语言学习交.流群546912356
1.C++程序员的系统化专业学习过的人比较少、因此,造成C++人才供给很少。
2.由于C++入门较难,在主流的编程语言中,对软件人才的编程能力要求最高,很多人由于畏惧的原因改学其他的编程语言。
综上所述,C++人才市场已显现出实际需求与人力资源之间的尖锐矛盾。
C++软件人才稀缺严重,薪资水平逐年升高
目前,基于Windows/Unix/Linux的C++有各种从业人员极为紧缺,尤其是C++软件编程人员、C++系统分析员和C++软件测试人员。我国目前C++软件开发人才缺口每年为20万人左右,未来随着信息化、数据化不断提速,这一数字还将成倍增长.,很难想像,如果这一问题得不到解决,软件产业未来将面临怎样的危机。正是C++软件人才的严重稀缺,C++软件工程师的薪资水平正有逐年递增的趋势。