现代C++新四大名著及C++学习杂谈
现代C++新四大名著及C++学习杂谈
翻开自己的博客,在2012年8月我曾经写过如下一篇博客,
<<C++学习的方法以及四大名著>>
http://www.cnblogs.com/pugang/archive/2012/08/17/2643710.html
想想时间过得真快,转眼5年了,在这5年中C++也发生了翻天覆地的变化。2012年的时候C++11刚刚确定不久,很多技术资料也没有来得及更新,编译器也没有完全支持主流的C++11新特性,自然很多公司对于新版本的C++使用也是持有一定的保留态度,但是经过了这5年的应用实践,C++社区和大部分的公司已经适应了C++11以后的新特性,可以说现代C++大格局已定,基本算是熟了。
我在2012年8月的博客中推荐的C++四大名著是如下四本,虽然这四本堪称经典中的经典,但是C++语言本身的发展,不断地有新的东西加入进来,格局自然也就发生了变化,因此,本文为大家推荐了现代C++中的新四大名著,原来的四本书仍然是必修课,在这里需要强调指出。
<<C++ Primer>>
<<Effective C++>>
<<Exceptional C++>>
<<Inside the C++ Object Model>>
新C++四大名著中的--
第一本是<<effective modern c++>>
推荐理由: Scott Meyers 潜心力作,几十条建议字字珠玑, 如果四本书只能选一本拿来学习的话,我选这本。
第二本 <<C++ Concurrency in Action>>
推荐理由: 由于其野蛮生长性,C++ 语言本身从来没有将线程升格到如此的高度,也从来没有语言级别的支持,每个平台使用自己的方式来实现多线程,可谓是八仙过海,各显神通,C++11带来了多线程实现上的统一,目前为止,写的最全面,最深入的也就是这本了。
第三本<<The C++ Standard Library A Tutorial and Reference 2nd Edition>>
推荐理由:除C++了语言本身的升级,标准库也有大面积的升级,C++大部分有用的功能,基本都是通过标准库来实现,可见这本书的重要性。
第四本 <<Optimized C++>>
推荐理由:对于C++优化的各个方面谈的比较透彻,作者是多年的C++老鸟,行文十分流畅。




最后推荐的两本辅助书籍是:
<<AUTOMATE THE BORING STUFF WITH PYTHON>>
<<Python Crash Course>>
推荐理由: 那么为什么要在这么一篇讲C++的文章中推荐Python资料呢?不解释了,相信能理解我这篇文章的人应该知道Python是什么..


总结
本文简要的讨论了现代C++的发展,并提出了现代C++新四大名著,同时推荐了另外的两本辅助的Python资料,同时对目前C++的格局进行了简要的讨论,希望对大家有所帮助。
现代C++新四大名著及C++学习杂谈的更多相关文章
- 5332盛照宗 如何获取新技能+c语言学习调查
如何获取新技能+c语言学习调查 你有什么技能比大多人(超过90%以上)更好? 如果问我有没有什么技能比大多数人,并且是90%的人好,我还真不敢说有,因为世界上有70亿人,要比63亿人做的好才行啊.我也 ...
- 20155332 如何获取新技能+c语言学习调查
如何获取新技能+c语言学习调查 你有什么技能比大多人(超过90%以上)更好? 如果问我有没有什么技能比大多数人,并且是90%的人好,我还真不敢说有,因为世界上有70亿人,要比63亿人做的好才行啊.我也 ...
- 7月新的开始 - Axure学习03 - 布尔运算、表单元件
布尔运算 布尔运算:是一种数字符号化的逻辑推演法.包含联合.相交.相减等 在图形处理中,通过联合.相交.相减等操作使基本的图形组合产生新的形体 操作 准备 蓝色(底部).绿色(顶部) 合并:两个图形合 ...
- C# 4.0 新特性dynamic (待学习)
随便翻看了一下dynamic,在网上拷贝了一个例子,先贴出来等有空了再慢慢消化 static void Main(string[] args) { dynamic d = new MyDynamicO ...
- Linux学习杂谈
Linux学习相关的... --------- 1.Linux是免费的2.Linux是安全稳定的3.linux是开源的,却世界的工程师都在维护系统--------------------熟悉脚本开发语 ...
- Java8 新特性Stream 的学习和使用方法
流(Stream) 流是java 8 中新引入的特性,用来处理集合中的数据,Stream 是一个来自数据源的元素队列并支持聚合操作. Java 中 Stream 不会存储元素. 数据源 流的来源. 可 ...
- 7月新的开始 - Axure学习06 - 母版的使用
母版的使用 主导航.底部.在很多页面上都是一样的: 如果在每一个页面都写一次的化.话.是非常浪费时间的,为了方便.可以使用母版: 母版可以帮助我们将一些元素重复利用,既可以保证页面的统一性.还可以节省 ...
- 7月新的开始 - Axure学习05 - 元件库的创建
元件库的创建 元件库的创建.载入.编辑和删除等操作 元件库的后缀名名:.rplib 学习结果: 实现iPhone6的原型图 分辨率是 1080*1920,现在我们按比例缩小去实现(360*640)
- 7月新的开始 - Axure学习04 - 发布与预览、菜单和表格元件、流程图和连接点、标记元件
Axure 的发布与预览 1.发布 2.生成html文件 常规:指定浏览器.工具栏的生成 页面.页面说明.元件说明.交互.标志(logo和描述).字体.移动设备等 3.发布到Axshare Axure ...
随机推荐
- python实现微信接口(itchat)
python实现微信接口(itchat) 安装 sudo pip install itchat 登录 itchat.auto_login() 这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实 ...
- SSH的Eclips环境搭建
一.创建数据库名字为:dungouoa create database dungouoa default character set utf8; mysql> show create datab ...
- 技术分析 | 新型勒索病毒Petya如何对你的文件进行加密
6月27日晚间,一波大规模勒索蠕虫病毒攻击重新席卷全球. 媒体报道,欧洲.俄罗斯等多国政府.银行.电力系统.通讯系统.企业以及机场都不同程度的受到了影响. 阿里云安全团队第一时间拿到病毒样本,并进行了 ...
- MySQL错误2003:Can't connect to MySQL server (10060)
1.网络不通. 检查能不能ping通. 2.防火墙设置. 防火墙是否放过mysql的进程,是否屏蔽了mysql的3306端口. 3.mysql的账户设置. mysql账户是否不允许远程连接.如果无法连 ...
- JS延时一秒执行
//JS延时一秒执行 setTimeout(function(){ window.history.go(0); }, 1000);
- 解决微信浏览器禁止链接跳转到iTunes
方法:微信页面通过safari浏览器打开 safari打开的时候进行跳转 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition ...
- 团队开发冲刺2-----1day
第二冲刺阶段团队软件开发第二阶段冲刺 冲刺目标: 1.在第一阶段的基础上完成app内部界面设计. 2.逐步完成app内每一部分内容. 3.对app的实现进一步仔细钻研考虑. 4.对app每一部分内容模 ...
- zookeeper client API实现(python kazoo 的实现)
这里主要分析zookeeper client API的实现方式,以python kazoo的实现代码为蓝本进行逻辑分析. 一.代码框架及介绍 API分为同步模式和异步模式.同步模式是在异步模式的基础上 ...
- 【Android Developers Training】 94. 创建一个空内容提供器(Content Provider)
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 如何使用mybatis对mysql数据库进行操作,batis的增删改查
1.先下载Mybatis和mysql connecrt的jar包 下载地址: 链接: https://pan.baidu.com/s/1kVFfF8N 密码: ypkb 导入jar包,maven的话可 ...