A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宝玉 中级黑马   /  2018-11-21 22:42  /  2187 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

C++的学习,我个人认为,主要分为两个部分,一个是对C++语言特性的学习,另一个是对C++库的学习。
从语言层面上来说,你要让自己熟悉现代C++语言特性,我这里主要指的是C++11,C++14, C++17标准,语言标准的内容可以参考 cppreference language c++   的内容,C++新添加的语言特性:auto, constexpr, lambda expression, 多线程库, 可变参数模板,右值引用,Move/Forward语义,Universal Reference/R-value Reference等基本概念需要熟悉一下。具体内容的话,我推荐看看Scott Meyers的 Effective Modern C++
标准库的学习首当其冲的就是STL(Standard Template Library)的学习。在学习C++的STL的时候,可以看看源码,你会学到许多东西,比如:数据结构和算法。其中常用的算法分析技术,例如:均摊分析,随机算法分析(结合一些概率论知识),在学习STL源码的时候,你会频繁使用到。这会加强自己对这些算法分析技术的了解程度。
Technical Specification提案(library上和language上):C++有很多最新语言层面和库层面的提案。比如在C++标准委员会搞的这个 IsoCpp-Current Status 上,我们就可以看到C++新标准将考虑支持的一些库层面和语言层面重要的提案,列举几个我比较关注的:Parallelism, Concurrency, Transactional Memory,File System, Networking,Concepts, Modules。这个内容比较复杂,感兴趣的朋友可以查阅链接看看。
  
给一些建议:让自己熟悉 Boost,学习一些编译器支持的特性,学习泛型编程和模板元编程技术。具体可以看看Boost程序库完全开发指南,Boost程序库探秘等书,中文的并且比较通俗易懂。然后找一个自己感兴趣的domain, 开始实施验证自己的想法;然后发现做了这些之后,你的C++就入门了。






2 个回复

倒序浏览
太好了,干货
回复 使用道具 举报
不错不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马