你将获得
- 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++ 之外的东西。这些话题涵盖的范围比较广,包括经典的学习资料、提高工作效率的工具等,让你在掌握核心硬技能的同时,还能拓宽知识面。
课程目录
├── 01丨课前导读 (2讲)/
│ ├── 00丨开篇词丨把C++从“神坛”上拉下来,这次咱这么学.html
│ ├── 00丨开篇词丨把C++从“神坛”上拉下来,这次咱这么学.m4a
│ ├── 00丨开篇词丨把C++从“神坛”上拉下来,这次咱这么学.pdf
│ ├── 00丨课前准备丨搭建实验环境.html
│ ├── 00丨课前准备丨搭建实验环境.m4a
│ └── 00丨课前准备丨搭建实验环境.pdf
├── 02丨概论 (5讲)/
│ ├── 01丨重新认识C++:生命周期和编程范式.html
│ ├── 01丨重新认识C++:生命周期和编程范式.m4a
│ ├── 01丨重新认识C++:生命周期和编程范式.pdf
│ ├── 02丨编码阶段能做什么:秀出好的codestyle.html
│ ├── 02丨编码阶段能做什么:秀出好的codestyle.m4a
│ ├── 02丨编码阶段能做什么:秀出好的codestyle.pdf
│ ├── 03丨预处理阶段能做什么:宏定义和条件编译.html
│ ├── 03丨预处理阶段能做什么:宏定义和条件编译.m4a
│ ├── 03丨预处理阶段能做什么:宏定义和条件编译.pdf
│ ├── 04丨编译阶段能做什么:属性和静态断言.html
│ ├── 04丨编译阶段能做什么:属性和静态断言.m4a
│ ├── 04丨编译阶段能做什么:属性和静态断言.pdf
│ ├── 05丨面向对象编程:怎样才能写出一个“好”的类?.html
│ ├── 05丨面向对象编程:怎样才能写出一个“好”的类?.m4a
│ └── 05丨面向对象编程:怎样才能写出一个“好”的类?.pdf
├── 03丨语言特性 (5讲)/
│ ├── 06丨auto-decltype:为什么要有自动类型推导?.html
│ ├── 06丨auto-decltype:为什么要有自动类型推导?.m4a
│ ├── 06丨auto-decltype:为什么要有自动类型推导?.pdf
│ ├── 07丨const-volatile-mutable:常量-变量究竟是怎么回事?.html
│ ├── 07丨const-volatile-mutable:常量-变量究竟是怎么回事?.m4a
│ ├── 07丨const-volatile-mutable:常量-变量究竟是怎么回事?.pdf
│ ├── 08丨smart_ptr:智能指针到底“智能”在哪里?.html
│ ├── 08丨smart_ptr:智能指针到底“智能”在哪里?.m4a
│ ├── 08丨smart_ptr:智能指针到底“智能”在哪里?.pdf
│ ├── 09丨exception:怎样才能用好异常?.html
│ ├── 09丨exception:怎样才能用好异常?.m4a
│ ├── 09丨exception:怎样才能用好异常?.pdf
│ ├── 10丨lambda:函数式编程带来了什么?.html
│ ├── 10丨lambda:函数式编程带来了什么?.m4a
│ └── 10丨lambda:函数式编程带来了什么?.pdf
├── 04丨标准库 (4讲)/
│ ├── 11丨一枝独秀的字符串:C++也能处理文本?.html
│ ├── 11丨一枝独秀的字符串:C++也能处理文本?.m4a
│ ├── 11丨一枝独秀的字符串:C++也能处理文本?.pdf
│ ├── 12丨三分天下的容器:恰当选择,事半功倍.html
│ ├── 12丨三分天下的容器:恰当选择,事半功倍.m4a
│ ├── 12丨三分天下的容器:恰当选择,事半功倍.pdf
│ ├── 13丨五花八门的算法:不要再手写for循环了.html
│ ├── 13丨五花八门的算法:不要再手写for循环了.m4a
│ ├── 13丨五花八门的算法:不要再手写for循环了.pdf
│ ├── 14丨十面埋伏的并发:多线程真的很难吗?.html
│ ├── 14丨十面埋伏的并发:多线程真的很难吗?.m4a
│ └── 14丨十面埋伏的并发:多线程真的很难吗?.pdf
├── 05丨技能进阶 (4讲)/
│ ├── 15丨序列化:简单通用的数据交换格式有哪些?.html
│ ├── 15丨序列化:简单通用的数据交换格式有哪些?.m4a
│ ├── 15丨序列化:简单通用的数据交换格式有哪些?.pdf
│ ├── 16丨网络通信:我不想写原生Socket.html
│ ├── 16丨网络通信:我不想写原生Socket.m4a
│ ├── 16丨网络通信:我不想写原生Socket.pdf
│ ├── 17丨脚本语言:搭建高性能的混合系统.html
│ ├── 17丨脚本语言:搭建高性能的混合系统.m4a
│ ├── 17丨脚本语言:搭建高性能的混合系统.pdf
│ ├── 18丨性能分析:找出程序的瓶颈.html
│ ├── 18丨性能分析:找出程序的瓶颈.m4a
│ └── 18丨性能分析:找出程序的瓶颈.pdf
├── 06丨总结篇 (5讲)/
│ ├── 19丨设计模式(上):C++与设计模式有啥关系?.html
│ ├── 19丨设计模式(上):C++与设计模式有啥关系?.m4a
│ ├── 19丨设计模式(上):C++与设计模式有啥关系?.pdf
│ ├── 20丨设计模式(下):C++是怎么应用设计模式的?.html
│ ├── 20丨设计模式(下):C++是怎么应用设计模式的?.m4a
│ ├── 20丨设计模式(下):C++是怎么应用设计模式的?.pdf
│ ├── 21丨知识串讲(上):带你开发一个书店应用.html
│ ├── 21丨知识串讲(上):带你开发一个书店应用.m4a
│ ├── 21丨知识串讲(上):带你开发一个书店应用.pdf
│ ├── 22丨知识串讲(下):带你开发一个书店应用.html
│ ├── 22丨知识串讲(下):带你开发一个书店应用.m4a
│ ├── 22丨知识串讲(下):带你开发一个书店应用.pdf
│ ├── 期末测试丨这些C++核心知识,你都掌握了吗?.html
│ └── 期末测试丨这些C++核心知识,你都掌握了吗?.pdf
├── 07丨结束语 (1讲)/
│ ├── 结束语丨路远,未有穷期.html
│ ├── 结束语丨路远,未有穷期.m4a
│ └── 结束语丨路远,未有穷期.pdf
├── 08丨轻松话题 (4讲)/
│ ├── 轻松话题(二)丨给你分享我的工作百宝箱.html
│ ├── 轻松话题(二)丨给你分享我的工作百宝箱.m4a
│ ├── 轻松话题(二)丨给你分享我的工作百宝箱.pdf
│ ├── 轻松话题(三)丨提高生活质量的App.html
│ ├── 轻松话题(三)丨提高生活质量的App.m4a
│ ├── 轻松话题(三)丨提高生活质量的App.pdf
│ ├── 轻松话题(四)丨真正高效的生活,是张弛有度.html
│ ├── 轻松话题(四)丨真正高效的生活,是张弛有度.m4a
│ ├── 轻松话题(四)丨真正高效的生活,是张弛有度.pdf
│ ├── 轻松话题(一)丨4本值得一读再读的经典好书.html
│ ├── 轻松话题(一)丨4本值得一读再读的经典好书.m4a
│ └── 轻松话题(一)丨4本值得一读再读的经典好书.pdf
免责声明:
评论0