C++语言是一种混合型语言(20世纪80年代兴起),它保留了C语言全部的优势,同时又增添了面向对象的编程机制,咱们能够将C++语言视为C语言的改进和扩展。程序员
基于C语言开发的C++语言兼容C语言,所以用C语言编写的程序基本上能够不作改动地用于C++。相对于C语言,C++语言对C语言的功能作了必定的扩充,同时增添了面向对象编程机制。引入面向对象编程机制,主要是为了提升开发效率。编程
这才是真正的C++!数据结构
早期C++许多的工做是对于C的强化和净化,并把彻底兼容C做为强制性要求。C8九、C99中许多的改进正是从C++中所引进。可见,Stroustrup对C语言的贡献很是之大。今天无论你对C++怎么看,C++的确扩展和进化了C,对C形成了深远的影响。函数
2)在C++兼容C的过程当中遇到了很多设计实现上的麻烦;以及守旧的K&R C程序员对Stroustrup的批评。不少人说C++的恶梦恶梦就是要去兼容于C,这并不无道理(Java就干的比C++完全得多),但这并非Stroustrup考虑的,Stroustrup一边在使尽浑身解数来兼容C,另外一方面在拼命地优化C。布局
3)C++最大的竞争对手正是C,他的目的就是——C能作到的,C++也必须作到,并且要作的更好。你们以为是否是作到了?有多少作到了,有多少尚未作到?性能
4)对于同时关注的运行效率和开发效率的程序员,Stroustrup屡次强调C++的目标是——“在保证效率与C语言至关的状况下,增强程序的组织性;能保证一样功能的程序,C++更短小”,这正是浅封装的核心思想。而不是过渡设计的OO。学习
5)《C++演化和设计》这本书中举了不少例子来回应那些批评C++有运行性能问题的人。C++在其第二个版本中,引入了虚函数机制,这是C++效率最大的瓶颈了,但我我的认为虚函数就是多了一次加法运算,但让咱们的代码能有更好的组织,极大增长了程序的阅读和降底了维护成本。(注:Lippman的《深刻探索C++对象模型》也说明了C++不比C的程序在运行性能低。Bruce的《Think in C++》也说C++和C的性能相差只有5%)优化
6)这本书中还讲了一些C++的痛苦的取舍,印象最深的就是多重继承,提出,拿掉,再被提出,反复不少次,你们在得与失中不断地辩论和取舍。这个过程让我最大的收获是——a) 对于任何一种设计都有好有坏,都只能偏重一方,b) 彻底否认式的批评是很差的心态,好的心态应该是建设性地批评。编码
相对运行于虚拟机语言,C/C++直接以静态形式把源程序编译为目标平台的机器码。通常而言,C/C++程序在编译及连接时可进行的优化最丰富,启动时的速度最快,运行时的额外内存开销最少。而C/C++相对动态语言也减小了运行时的动态类型检测。此外,C/C++的运行行为是肯定的,且不会有额外行为,也不会有如垃圾收集(GC)而形成的不肯定性延迟,并且C/C++的数据结构在内存中的布局也是肯定的。有时C++的一些功能会使程序性能优于C,当中之内联和模版最为突出,这两项功能使C++标准库的sort()一般比C标准库的qsort()快多倍(C可用宏或人手编码去解决此问题)。另外一方面,C/C++能直接映射机器码,之间没有另外一层中间语言,所以能够作底层优化,例如使用内部(intrinsic)函数和嵌入汇编语言。然而,许多C++的性能优势并不是免费午饭,代价包括较长的编译连接时间和较易出错,于是增长开发时间和成本。操作系统
这才是真正的C++!
学编程最重要的是实践,就是写代码、看别人写的代码、再写代码,你看再多的书,不写代码,你仍是不会编程。可是写代码也要讲究方法按部就班,不能刚学了几天语法,就想写个操做系统什么的,树立这种不切实际的目标只会让你的自信受到严重打击迷失自我。
但愿和你们一块儿学习交流记一下交流裙775356268
**总而言之
学会交流,多交流,相互补益,同时团队合做也是很重要的。
实践出真知,多学、多练、多思、多交流,勤奋好学才能学成。**
有什么不合适的地方还请多多指教!