觉得C++简单是种什么体验?
图样,C++简单,这一定是错觉。C++是不可能简单的,这辈子都不可能简单的。就算是C语言十几年的骨灰级玩家,依然不敢说精通C语言,还时不时能感受到C语言所带来的惊喜。对于复杂度高过C语言好多个等级的C++,哪怕是C++老父本尊,也都谦虚自己对C++的理解只有六七成,这要多大的勇气,才敢发表C++简单的体验,不,这辈子都不会有这样的勇气。
C++有四大块子语言系统,每一块都不是省油的灯。
C语言机器模型的面向过程的抽象方式,这个还好办,无非就是内存的理解,指针的使用,函数的运用,结合对硬件的理解,一两年下来,略有小成,难度不大,小成的意思就是对于每一行C语言代码,基本上都要求在大脑里面能反映出来相应的汇编代码。但是,好像大把大把十几年工作经验的C猿猴,写出来的C语言代码也未必多高明。所以不好说就简单了。
基于对象以及面向对象的抽象,用成员函数做各种文章,用于初始化的成员函数,也就是各种构造函数(缺省构造函数,复制构造函数,移动构造函数等),释放资源的析构函数,操作符重载的各类成员函数,成员函数指针,多态成员函数,多继承,虚继承,对象模型,类型转换,临时变量等等,表面上好多内容啊,其实也还好,不过就是知识点有些庞杂。但是,因为所提供的选择太多了又兼缺乏GC和反射,所以很多C++猿猴对于面向对象的使用,其实不太过关。多少多年开发经验的C++工程师,甚至连虚函数表都缺乏理解。在面向对象上,C++就开始不简单了。
泛型,template,元编程。这里面的规则就更加复杂了,但是更麻烦的是思维模式的迥异,有Haskell基础的可以帮助理解,但是template的方式又跟函数式编程不太一样。这里,就不想说太多,就简单提一下,先学习stl的源代码,然后啃两本书,C++设计新思维以及C++模板元编程。这样下来就略窥门径了。boost里面那屎山一般的喜马拉雅山template代码,让人望而生畏,其实也没有完全发挥template的威力。总之能很好理解template的C++猿猴,已经是稀有动物了。君不见多少项目,明文规定,业务代码不准出现template的关键字。
接着就是预处理的宏编程了,这又是一种新的思维方式,对预处理编程深入研究的人,跟template类似,也是少之又少。吐槽一下,boost的预处理库写得真是烂透了。
然而,以上的四大板块,又可以随意的互相组合,template与面向对象的结合,预处理与template等,从而制造出来各种各样奇奇怪怪的奇技淫巧。
话说回来,人生苦短,也没有必要追求C++简单的体验,性价比太差了。
获取方式:
1.在你手机的右上角有【关注】选项,或点击我的头像,点击关注!(关注我)
2.关注后,手机客户端点击我的主页面,右上角有私信,请私信发我:编程
电脑已经设置好了关键词自动回复,自动领取就好了!这几天上万个消息,真的回复不过来,所以回复的时候请注意关键词!
其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这里请私信我“编程”不管你是小白还是大牛欢迎入住大家一起交流成长。小编会在里面不定期分享干货源码,包括我精心整理的一份c++零基础教程。欢迎各位感兴趣的的小伙伴。
学习思路:
学习资料: