# 现代C++编程实战 ## 你将获得 * 掌握 C++ 语言现代特性 * 领会 C++ 抽象表达精髓 * 实践 C++ 开发惯用模式 * 征服复杂性解决实际问题 ## 讲师介绍 吴咏炜,前英特尔亚太研发中心资深系统架构师。1995 年毕业于复旦大学,​​从事软件开发工作 20 多年,​历任开发工程师、项目经理、开发经理、架构师等职务。作者热爱软件技术,热爱​ ​C++,热爱开源;对于精炼、易于维护的代码追求不懈。曾参与翻译《编程大师访谈录》。GitHub 上也能看到其维护的一些小开源项目,如 libunibreak。 ## 课程介绍 C++,一门声名在外的老牌编程语言。 作为一门多范式的通用编程语言,它适用的领域非常广泛,小到嵌入式,大到分布式服务器,到处可以见到 C++ 的身影。从性能上看,C++ 表现也很出色,虽然完成同样的功能,C++ 需要的代码行数可能是 Python 的三倍,而性能则可以轻松达到 Python 的十倍以上。此外,其发展前景也非常广阔,作为未来趋势的人工智能和机器学习,外衣是Python(模型描述),但是内核还是 C++(高性能运算) 。 但你也可能听说过 C++ 的另一种评价——复杂、难学、难用。上手和熟练掌握难,应用上容易出错,被误用的可能性也很大。还有,C++ 继发布语言标准的第二版——C++11——之后,它以每三年一版的频度发布着新的语言标准,每一版都在基本保留向后兼容性的同时,提供改进和新功能。 难且迭代迅速,相信这两座大山让很多 C++ 程序员都望而生畏。可事实真的如此吗?你有没有深入思考过到底什么样的学习方式才最适合 C++?面对那么多的新功能、单词和语法规则,要记吗?哪些才是重点?记住了又怎么用呢? 针对以上这些问题,吴咏炜将结合自己过去 20 多年累积的工作经验,节选现代 C++ 的重要新特性,带你进入编程实战,手把手带你重新理解 C++。相信通过本专栏的学习,你能把 C++ 当作一种实用的语言,能用它写出抽象但自然、可维护的高性能代码,并用它去更好地解决项目中的实际问题。 具体内容上,专栏分为以下四部分: 第一部分——基础篇,讲解现代 C++ 中的最重要特性,帮助你理解基础概念; 第二部分——提高篇,讲述几个独立的专题,帮助你掌握 C++ 中的一些高级技巧; 第三部分——实战篇,讨论实际的工具和第三方库,帮助你打磨手头的兵器库; 第四部分——未来篇,讨论 C++20 中即将引入的一些新特性,帮助你培养前瞻性。 # 学习路径图 ![](https://static001.geekbang.org/resource/image/7a/d4/7a3ce178c061a1fcefda2bca881247d4.jpg) # 特别说明: 1.专栏中的内容大部分时间都会使用不超过 C++17 标准的语言特性,最后在讲到 C++20 新特性时,某些实验功能可能会要求某个特定的编译器,更多细节请参见 [\[课前必读\]](https://time.geekbang.org/column/article/169198)。 2.专栏涉及到的都是较短的代码,因此不需要工程文件也可以编译运行。这里建议你熟悉编译器的命令行,来快速编译代码。 3.为了方便你编译,可编译的完整示例代码已经放在 [GitHub](https://github.com/adah1972/geek_time_cpp) 上。如果你使用 CMake,还可以用它来生成你使用的平台所需的工程文件。 4.专栏中案例+代码偏多,不建议仅通过音频学习,“文稿+音频+动手实践”为最佳学习方式。 ## 课程目录 ![](https://static001.geekbang.org/resource/image/f6/29/f6cfb49b379a72ebb8c368bff3f3cc29.jpg) ## 适合人群 具有 1~5 年工作经验的 C++ 程序员,熟悉基本编程概念和 C++ 的基本语法,包括指针、引用、异常、递归、class 等(不要求熟悉 C++11),有意愿了解更深入的 C++ 知识。不适宜完全没学过 C++ 的人(本专栏非 0 基础课程)。 ## 特别放送 #### 免费领取福利 [![](https://static001.geekbang.org/resource/image/3b/f4/3bdf677ae6490acb5f2899985e9337f4.jpg?wh=1029x315)](https://time.geekbang.org/article/455497) #### 限时活动推荐 [![](https://static001.geekbang.org/resource/image/67/a0/6720f5d50b4b38abbf867facdef728a0.png?wh=1035x360)](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?dc_ps=2913145716543073286.200001) ## 订阅须知 1. 订阅成功后,推荐通过“极客时间”App端、Web端学习。 2. 本专栏为虚拟商品,交付形式为图文+音频,一经订阅,概不退款。 3. 订阅后分享海报,每邀一位好友订阅有现金返现。 4. 戳此[先充值再购课更划算](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?scan=1&activity=none&from=kdt&qr=directgoods_1541158976&shopAutoEnter=1),还有最新课表、超值赠品福利。 5. 企业采购推荐使用“[极客时间企业版](https://b.geekbang.org/?utm_source=geektime&utm_medium=columnintro&utm_campaign=newregister&gk_source=2021020901_gkcolumnintro_newregister)”便捷安排员工学习计划,掌握团队学习仪表盘。 6. 戳此[申请学生认证](https://promo.geekbang.org/activity/student-certificate?utm_source=geektime&utm_medium=caidanlan1),订阅课程享受原价5折优惠。 7. 价格说明:划线价、订阅价为商品或服务的参考价,并非原价,该价格仅供参考。未划线价格为商品或服务的实时标价,具体成交价格根据商品或服务参加优惠活动,或使用优惠券、礼券、赠币等不同情形发生变化,最终实际成交价格以订单结算页价格为准。