算起来,用C++已经有七八年时间,也有点可以分享的东西;
以下推荐的书籍大多有电子版。对于技术类书籍,电子版并不会带来一个好的阅读体验。如果喜欢,最好找纸版(图书馆是个好去处);电子版更适合作为一个参考书籍常备电脑。
 
我将分为基础篇、Windows篇、和Linux/Unix篇 三个部分来介绍这些经典书籍:
 

C++入门

C++ Primer

我的C++入门读物是《C++大学教程》,这本书800多页,由于学习时间长,一个学期学这么一本书,时间上的富裕,让我有充分的时间来吸收。书中80%的代码我都敲到PC上运行过;后来再看《C++ primer》的时候,也就一个星期的功夫翻完了。都是入门读物,介绍的也都全面。刚接触C++的朋友,至少应该将这方面的书好好过一遍。
 

语言技巧,性能优化

有了语言基础之后,接着就是细节上的深入,进一步领会C++的精髓。《Effective C++》可以看作是一本C++ 疑难解惑手册; 对于C++语言层次深入一点的东西,容易出错的知识点,在这边书上可找到满意解答;适合多次品味。
C++必知必会》《More Effective C++》则作为对Effective C++ 没有讲完的补充,可看作前者看完后意犹未尽时使用;
顺便说下,这三本书都不厚,小册子,每本也就几天的功夫就可以搞定;
 

底层硬货

C++源于C,对于指针、对于各种地址的偏移计算,对于大端小端的深刻剖析,还得靠一些硬通货来解析;这两本书虽说不厚,但读起来确实费劲,信息量很足,很多都是在平时C++使用中没有意识到的知识点,却又都是重要的点。让人有知其所以然的快感;
涉及到底层的东西,都是用来验证编程功底是否扎实。要想彻底掌握C++底层的东西,还是得看看专家编程,很好的两本书,指针等讲的很透彻。
 

STL

C++标准程序库》是属于百科全书类型,讲解基础,但语言平淡(是以参考手册的角度来写的),没有勇气将其全部翻完,捡感兴趣的和自己很缺乏的部分看了看(里面关于智能指针方面的论述,还不错);
泛型编程与STL》里面对萃取机制及各泛型的概念论述非常透彻,前6章为主要篇章,不可跳过。后面的可在实践中编码练习或查找。 后面章节可在看完之后做为手册使用,对STL中的常用算法和容器进行了归类讲解,并给出了相当数量的示例。
STL源码剖析》每一个推荐深入STL的文章应该都少不了这本书。下面几个问题可以考查一下是否需要看看: 1.STL中DQueue的实现机制(数据结构式如何组织的,其迭代器的插入和删除过程中的实现) 2.是否熟悉红黑树,能否叙述其插入和删除过程,如何调整。 3.萃取器的几种实现
 

Boost

当标准库无法再满足你的时候,就轮到Boost出场了。编程,讲究两个效率,一是开发效率,二是运行效率。与其它编译型语言相比(java、C#等),C++属于后者,运行效率不错,但开发效率着实低。除了C++更底层的原因外,另一方面的原因就是标准库提供的功能不足。没有太多的工具,想实现什么都得自己来一遍,重复的造轮子的工作在程序员中不断上演;
Boost库是对C++标准库的扩展,让我们在开发的过程中有更多的工具可以选择。正则表达式、智能指针等工具都是非常有用的工具,而函数对象,Lambda则让我们在编写C++的代码中更为优雅;
这里提供的一本书是Boost的入门经典。它的目的就是让你对boost产生兴趣。等有了兴趣之后,就直接上boost的官网吧,需要什么尽管拿。
 

设计模式

设计模式》是该领域的圣经,未全看完。虽说经典,但一页一页的翻完,还真要点耐性。不像老外写书的风格,这本书看的很累(这也是一本参考手册)。我认为在对大部分模式都有一定的了解后再来看这本书,会找到很多兴趣点。
设计模式精解》我的设计模式之路是从这本书入门的,通过几个实例来解释模式的用法,以及为什么要用模式(这个可能更重要),不过全书也就讲了10来个模式,意犹未尽。对设计模式感兴趣、初学者推荐;
道法自然》是国人写的很不错的一本书,用他们自己写的一个框架系统作为实例,贯穿全文,讲解各种模式的用法。看过后,体会到模式在大项目,特别是这种框架系统中的应用真是太到位了。同时,熟悉MFC的朋友会在本书中收获更多的东西,MFC也是一个框架系统,通过本书的讲解,可以体会到MFC的内部设计以及为何如此设计(书中就专门讲到MFC中的设计思想),同时,在讲单件模式的时候,还带出了MFC中theApp的作用(为什么要在MFC中安排一个theApp全局变量?这是我看到的唯一一本书解释了这个问题的);
 

算法篇

讲解数据结构和算法技巧的压轴好书。
 
基础篇就谈这些,后续将讨论C++的应用,Windows篇和Linux/Unix篇;
 
(原文地址:http://www.cnblogs.com/me115/archive/2012/12/26/2833346.html)

[转]C++学习–基础篇(书籍推荐及分享)的更多相关文章

  1. Docker虚拟化实战学习——基础篇(转)

    Docker虚拟化实战学习——基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker   Docker虚拟化实战和企业案例演练 深入剖析虚拟化技 ...

  2. 深度学习Tensorflow相关书籍推荐和PDF下载

    深度学习Tensorflow相关书籍推荐和PDF下载 baihualinxin关注 32018.03.28 10:46:16字数 481阅读 22,673 1.机器学习入门经典<统计学习方法&g ...

  3. web前端学习路线与书籍推荐

    什么是web前端? 在以前,通俗的讲是网页制作,在现在,哼哼,可以参考这篇文章 http://tieba.baidu.com/p/4817153404 那么如果高效优雅的学习web呢? 注:以下纯属个 ...

  4. Android学习之路书籍推荐

    Android开发书籍推荐:从入门到精通系列学习路线书籍介绍 JAVA入门书籍: < Introduction to java programming > < Core java & ...

  5. 学习windows内核书籍推荐 ----------转自http://tieshow.iteye.com/blog/1565926

      虽然,多年java,正在java,看样子还得继续java.(IT小城,还是整java随意点)应用程序 运行于操作系统之上,  晓操作系统,方更晓应用程序. 主看windows,因为可玩性高,闭源才 ...

  6. 学习UI设计书籍推荐

    在学习UI设计的过程当中,特别想学或者零基础的人来说,需要学习到很多知识,比如软件 PS AI ,理论 色彩 排版 规范 UE 等,这些都是一名UI设计师需要学习的知识,而学习到这些知识,可以通过视频 ...

  7. python学习之路-书籍推荐

    学python有一段时间了,总结走来的路,发现还是看书靠谱,当然也要多实践. 一.入门篇 1.简明 Python 教程(A Byte of python) http://www.kuqin.com/a ...

  8. Python ( 学习 基础篇第一部 )

    目录 注释 注释的分类 注释的注意点 变量 变量的概念 变量的声明 变量的命名 变量的交换 变量的缓存机制 常量 进制 进制的转换 原码 反码 补码 六大数据类型 Number 的四大类 字符串 st ...

  9. ios学习基础篇一

    搜集的不错的oc学习资料 大概总结: http://my.oschina.net/luoguankun/blog/208526 详细教程: http://www.w3cschool.cc/ios/io ...

随机推荐

  1. node-webkit教程(11)Platform Service之shell

    node-webkit教程(11)Platform Service之shell 文/玄魂 目录 node-webkit教程(10)Platform Service之shell 前言 11.1  She ...

  2. 团队作业—第二周—SRS

    一.系统整体用例图: 二.用户用例图: 三.医院用例图:

  3. Wix 安装部署(二)自定义安装界面和行为

    上一篇介绍了如何联合MSBuild来自动生成打包文件和对WIX的一些初步认识,http://www.cnblogs.com/stoneniqiu/p/3355086.html . 这篇会在上篇的基础上 ...

  4. 分享我用Qt开发的应用程序【一】,附绿色版下载,以后会慢慢公布源码

    写在前面: 1.第一版的代码还有些烂,等功能开发齐全了,做一次重构,再慢慢分享代码 2.邮箱功能.自动升级功能还没有做,笔记功能和备忘功能是好用的,大家如果不嫌弃,可以先用起来 3.笔记功能目前还不能 ...

  5. 从源代码分析Android-Universal-Image-Loader的缓存处理机制

    讲到缓存,平时流水线上的码农一定觉得这是一个高大上的东西.看过网上各种讲缓存原理的文章,总感觉那些文章讲的就是玩具,能用吗?这次我将带你一起看过UIL这个国内外大牛都追捧的图片缓存类库的缓存处理机制. ...

  6. Qt5.3 打印示例时出现错误

    说明:今天我在用Qt5.3写打印文档的时候,编译出错了,出错代码为: C:\Users\joe\Desktop\5-9\myPrint\mainwindow.cpp:35: error: undefi ...

  7. Nodejs学习笔记(九)--- 与Redis的交互(mranney/node_redis)入门

    目录 简介和安装 redis简介 redis安装 redis运行 node_redis安装 连接到redis服务器redis.createClient() 认证 client.auth(passwor ...

  8. Js中的一个日期处理格式化函数

    由于在工作中,经常需要对日期进行格式化,不像后端那样,有方便的方法可调用,可以在date的对象prototype中定义一个format方法,见如下 //日期时间原型增加格式化方法 Date.proto ...

  9. atitit.提升开发效率---动态语言总结

    atitit.提升开发效率---动态语言总结 ruby,python 都不错,就是语法不好, 应用不广泛,文档,工具都非常少,不推荐... php狠不错,就是高级特性不行.. 看来子有.net/jav ...

  10. 电影成生活O2O必争之地,破局之战就此拉开

    这一次的两会过后,互联网最流行的一个词恐怕当属“互联网+”.尤其是总理关于“以互联网为载体.把线上线下互动的新兴消费搞得红红火火”的一席话,更是让国内的O2O从业者兴奋不已.百度李彦宏在两会接受记者采 ...