其实我之前主要的语言是java,但是来到新公司后用php和go开发项目,平时除了阅读下关于java相关的文章外再没有实际运用过java,导致我现在java相关的知识还停留在java 8(那时候有的还叫1.8)。之所以学c++是因为现在所在的公司主要项目都是用c++写的,包括前些日子需要在一个项目中增加一些逻辑来实现某个功能,这个项目也是用c++写的。虽然最后功能全部实现了,但是那巨鳄不是在我掌握c++的情况下完成的,完全是凭借其他语言的开发经验及思想依葫芦画瓢画出来的。在这期间,也对c++产生了一些兴趣,因此打算系统地学习一下c++,尽管它号称是最难学(其实说它难学也是其编程规则以及语法糖太多)的编程语言之一。俗话说好记性不如赖笔头,看3遍不如写一遍,因此想找一找当年记笔记的感觉。鉴于互联网大行其道的当下,自己也希望留些痕迹(当然是好的方向)表明自己来过。 c++属于什么类型的语言,这个问题从不同的角度看有不同的解释。如果按照动态、静态语言来区分的话,那么c++属于静态语言。不同于java将源程序编译成java字节码运行在jvm,c++是将源程序编译成机器可认识的机器码。这就意味着c++程序相比java少了一层翻译(java字节码必须跑在jvm上,目前jvm是c++实现的,java未实现自举),从这个层面上来说c++的执行效率要高于c++(尽管java现在号称和c/c++性能差别很小)。如果按照面向对象、面向过程来区分的话,c++算中间语言,它可以用面向过程(c部分)思想来实现功能,也可以用面向对象(c的结构体也可以认为是对象)的思想来实现功能。究竟是面向对象好还是面向过程好,这个没有定论,甚至都不应该拿来讨论(不管白猫黑猫,抓到老鼠就是好猫)。不过从语言的发展来看从b语言、c语言的面向过程大行其道,到后来的smalltalk等面向对象语言问世,再到后来java的盛行,直到近些年python、go等语言将两种思想融合,这从侧面也间接反映了计算机编程语言的思想变化。
|