我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:四肖中特 > 泛型编程 >

来了! C++学习建议和学习资料

归档日期:04-19       文本归类:泛型编程      文章编辑:爱尚语录

  各位,因为一直有人再问C++的相关问题,所以今天这里就简单写一篇推送,一来给出一些学习建议,二来带来一些学习资料,供大家学习。由于能力有限,以下内容不准确或者不到位的地方还请大家批评指正。

  一直在说C++是C的继承和发展,单从这句话来说没错,但具体到学习过程中,最好还是忘掉这句话, 把它当成一门新的语言去学习,这有利于去除你被C固化的一些思维。C++可以是面向过程的,因为C能做的它也能做;C++也可以是面向对象的,此时封装(数据抽象)是基础,继承是手段,多态是目的;C++还可以是泛型编程的,此时参数化类型(概念抽象)是基础,模板是手段,通用是目的。

  目前来说,C++的主要应用领域有服务器端开发,游戏开发,PC端尤其是windows桌面软件,虚拟现实,数字图像处理(比如OpenCV),分布式系统,操作系统,驱动程序等等,不得不说其功能强大,当然这也是它比较难学的原因。

  我个人一直坚持一个观点,由于学习个体不同,适合每个人的学习方法是有差异的,给出学习路线这事本身就是困难的,因此下面只是结合自身经验,在宏观面上的角度给出一些建议,并推荐了一些比较不错的书籍,供大家参考。个人认为C++学习可分为3个阶段:

  第一阶段是C++基础知识学习。毫无疑问,第一层就是入门,选定一本入门书,开始学习。比如:大学教材、《C++ Primer》或Stroustrup撰写的经典《C++程序设计语言》,他这几年的出新作《C++程序设计原理与实践》也不错,《Essensial C++》也可以,上面几本书一般大学的C++课程也就到这了,也是通常所说的入门篇。另外《也C++ 标准程序库》及《The C++ Standard Library Extensions》可当作参考工具。

  《C++ Primer》这本书是Lippman写的,经典中的经典,名声压过C语言的那本《C Primer Plus》,C++入门的宝典,基本涉及了C++所有的基础知识,读完这本书,基本语法过关,部分技巧掌握,缺点就是确实太厚了。

  《Essensial C++》可以看做是一本C++的字典了,也就是上述两本的的简化版,可以一读。

  《Effective C++》简称EC ,是顶级大师Scott Meyers写的书,C++程序员必读!很多时候,我们说C++圣经不是指TC++PL,而是这一本。有人说c++程序员可以分为两类,读过effective c++的和没读过的,几乎在所有c++书籍的推荐名单上,本书都会位于前三名。

  《C++ 编程规范》这本书几乎是对Effective和Exceptional系列的总结,一些模版、异常的业界经验都在这里的到了体现,个人认为看过那两个系列的这本书可简看或不看。

  第三阶段是全局深入了解C++。这一阶段要开始学习C++中一些原理层面的知识并要试着站在全局的角度去思考问题,为以后项目实战打基础。推荐书籍有《深入探索C++对象模型》、《C++沉思录》、《STL源码剖析》,再深入一些,可看关于模版及模版元编程的书籍如《C++ Templates》、《C++设计新思维》、《C++模版元编程》。

  《深入探索C++对象模型》讲了虚函数是如何实现、多继承时基类是如何在内存中排布的和所有影响性能的东西,同时讲了编译器如何实现C++的对象模型,建议一读,不过里面不少错误,读的时候自己辨别一下。

  《STL源码剖析》是华科出版的,侯捷老师有一句名言:任何一个C++学生写出来的程序在SIG STL面前只能算三流程序,不妨多看看STL源码。这本书从源代码的角度分析STL中各种容器和算法的实现,基本可以代替任何C++的数据结构的学习用书了,推荐阅读!

  《C++ Templates》这本书可以说是模板学习的圣经和权威了,全面地介绍了模板的各个方面,在阅读STL、Boost或者Loki的源代码之前,建议先阅读本书。

  《C++沉思录》英文名为《Ruminations on C++》,也是鼎鼎大名了,抛开其他的不讲,我个人最喜欢的是这本书的写作风格,它不谈复杂的语法,直接罗列出C++中常用的技巧,诸如handle类,智能指针,函数对象等,还从源码层次分析了这些技术的实现,建议大家好好读一读,定会收获不少。

  《C++模版元编程》更多的是讲解boost::mpl,想要深入理解mpl的可以看一下。

  上面这些书籍我们整理出了大部分的电子版,但由于各种原因,有些版本稍老或者清晰度稍差,不过不影响阅读,还请大家谅解,这里建议大家学习还是尽量去购买纸质书籍。

本文链接:http://pebeducation.com/fanxingbiancheng/145.html