返回课程
AI013
专业级
现代 C++ 教程
本教程旨在为有经验的开发者提供 C++11/14/17/20 新特性的快速参考。内容涵盖语言易用性改进、运行时性能提升、新容器、智能指针与内存管理、正则表达式、并发编程,以及对 C++20 的前瞻介绍。
4.8
30.0h
318 名学生
10 课时
2 点赞
人工智能
课程概述
内容概要
本教程旨在为有经验的开发者提供 C++11/14/17/20 新特性的快速参考。内容涵盖语言可用性提升、运行时性能改进、新容器的使用、智能指针与内存管理、正则表达式、并发编程,以及对 C++20 的前瞻介绍。
快速掌握 C++11/14/17/20,迈入现代 C++ 编程的大门。
作者: 欧长坤 (Ou Changkun)
致谢: 采用 CC BY-NC-ND 4.0 协议授权,感谢所有 GitHub 贡献者及相关社区支持。
学习目标
- 使用命令行工具识别并验证 C++ 编译环境和目标架构。
- 解释 C(C89、C99、C11)与 C++(C++98、C++1x)之间的标准兼容性和重叠历史。
- 通过
extern "C"头文件和多阶段编译工作流实现跨语言功能链接。 - 使用
nullptr解决指针歧义,并利用constexpr和if constexpr实现编译期逻辑。 - 使用
auto、decltype和类型别名(using)简化复杂声明,同时通过override和final确保稳健的面向对象设计。 - 利用可变模板、折叠表达式和非类型模板参数推导设计高度泛化的代码。
- 使用多种捕获模式(值捕获、引用捕获、表达式捕获和通用捕获)定义和实现 Lambda 表达式。
- 使用
std::function和std::bind创建灵活的函数包装器和部分函数应用。 - 将表达式分类为左值(Lvalues)、纯右值(Prvalues)和将亡值(Xvalues),并应用移动语义优化类资源管理。
- 区分
std::array(固定大小、栈分配)和std::vector(动态大小、堆分配)的内存模型及其适用场景。