你将获得
- C++11/14 核心特性的代码实战
- 标准库的 4 大核心工具详解
- C++ 常见陷阱及其解决方案
- 手把手带你开发一个服务端应用
课程介绍
我们知道,C++ 是编程语言中的“万能选手”。它不仅功能强大、非常灵活,而且运行处理速度也很快,适用场景非常广泛。很多新的编程语言都从它身上获得了灵感。无论你是否使用 C++ 开发程序,在学习它的时候,都能够有很多收获。
但是,说起 C++,很多人还会有另一个反应:“出了名的难学难用。”的确如此。因为它实在是太复杂了,有太多的特性和细节。
随着标准版本的演进,C++ 里包含的东西也越来越多。不断膨胀的核心语言加上庞大的标准库,让学习、使用 C++ 的门槛无形中提高了很多,不仅“新手”学起来很难,就连“老手”也觉得用好它并不是一件容易的事情。毕竟,我们总是不可避免地会遇见一些难题:
- C++ 太庞大复杂了,该用哪些特性?
- 标准库里的东西这么多,核心的工具有哪些?
- 开源的 C++ 库很多,但良莠不齐,哪些库最好用呢?
- ……
基于以上的这些难题,罗剑锋老师根据自己写 C++ 代码的 20 多年的实践经验,精选出了 C++11/14 最好用、最实用的特性,不讲语法细节和内部实现原理,直接上代码实战,让你能轻松地看懂、学会。
另外,在讲解核心特性和工具的过程中,他也会带领你绕开语法细节、资源管理、库 / 工具等方面的陷阱,帮助你高效地写出更安全、更优雅的代码,真正解决 C++ 难学、难调试、难优化的问题。
常见问题
问:这个课程和《现代 C++ 实战 30 讲》有什么区别?
答:
《现代 C++ 实战 30 讲》针对的是 C++17/GCC7,有时候还会用到 C++20/GCC 8,侧重深入、透彻地讲解语言特性背后的原理,适合想要学习最新特性、想要掌握 C++ 高级技能的工程师。
本课程基于国内目前的开发现状,从 C++11/14 和较早版本的 GCC(4.8/5.4)入手,精选出最常用、最好用的 C++ 特性,结合代码实战告诉你该怎么用、不该怎么用,更适合对 C++ 有所了解(1~5 年)但又对其庞大、复杂的特性不知如何取舍的软件工程师。同时,想要借鉴高手实战经验的优秀工程师,同样也能从本课程中获益。
问:平时很少用 C++,学习这个课程可以有什么收获吗?
答:
- 可以学习和借鉴高手在编码规范、面向对象、设计模式、设计原则方面的思考和实践经验。
- 开拓编程思路。C++ 强调“性能至上”,你可以了解到,在面对同样的问题时,C++ 是如何考虑并处理的。
- 更好地理解计算机系统的应用机制。C/C++ 是现代操作系统和许多底层开发框架的核心开发语言,了解 C/C++ 的基本知识,就能够阅读操作系统或框架的源码,为上层应用服务。
- 提升混合编程的能力。用多种语言搭建混合系统是当前的一种流行趋势。使用少量 C++ 代码改写系统中的关键组件,能够大幅度提升整体性能,做到“小投入,大产出”。
课程模块设计
课程主体分为 5 个模块。
概论:从程序的生命周期和编程范式这两个独特的角度来审视 C++,帮你看清楚 C++ 复杂的本质,透彻理解 C++ 程序的运行机制和面向对象编程思想。
语言特性:精选 C++ 中的自动类型推导、智能指针、lambda 表达式等几个重要特性,帮你掌握惯用法,消灭代码里的隐患,写出清晰、易读、安全的代码。
标准库:详细介绍最核心的四个部分,即字符串、容器、算法和并发,让你用好这个最基本的库,学会泛型编程,提高程序的运行效率。
技能进阶:介绍 C++ 标准之外的一些第三方工具,带你一起实现序列化、网络通信和性能分析等功能,解决实际开发中遇到的常见问题。
总结:结合 C++ 来讲设计模式,并手把手带你开发一个 C++ 服务端程序,帮你深入理解在项目中,如何更高效地使用 C++ 写出更安全的代码。
除此之外,还特别设计了一个“轻松话题”模块,和你聊些 C++ 之外的东西。这些话题涵盖的范围比较广,包括经典的学习资料、提高工作效率的工具等,让你在掌握核心硬技能的同时,还能拓宽知识面。
课程目录
适合人群
- 知道 C/C++ 的基本语法规则(如指针、类、继承等),对泛型有简单的认识,但又对 C++ 的庞大复杂感到不知所措的 C/C++ 软件工程师。
- 不以 C++ 为主要工作语言,但想要借助 C++ 开拓思路、实现混合编程的工程师。