这是博客里最长寿的一个系列:从 2018 年的指针、引用,一路写到双缓冲、无锁编程和内存碎片化。32 篇文章按「基础语法 → 语言特性 → 工程实践 → 高级进阶 → 实战案例」递进,按发文时间顺序读即是推荐阅读顺序。
第一阶段:基础语法
打地基的 9 篇,每篇解决一个具体的小疑问:
- C++ 指针:一切的开始
- C++ 引用:指针的”安全外衣”
- C++ 枚举
- C++ 二维数组:内存视角看数组
- ++i 与 i++ 的区别
- sizeof 与 strlen 的区别
- sizeof 的 9 个特殊规则
- C++ 命令行参数
- malloc(0) 会返回什么?
第二阶段:语言特性
从”会写”到”理解语言的设计”:
- new 与 malloc 的区别
- C++ 拷贝构造与赋值函数
- C++ friend 友元
- C++ const 与 mutable
- std::ref 的作用
- Lambda 表达式的捕获列表
- C++ 语言链接:extern “C”
- C++ 流缓冲区
- C++ 基础面试题精选
第三阶段:工程实践
把代码变成可交付的产物:
第四阶段:高级进阶
内存模型与并发,这个系列的精华所在:
- C++ 右值引用
- C++ 对象模型:内存布局详解
- C++ 工程实践:值语义
- enable_shared_from_this 的使用场景
- 循环引用:用 shared_ptr 还是 weak_ptr?
- C++ 死锁排查:Shell + GDB 定位
- 多线程写数组的设计方案
- C++ 无锁编程原理
- C++ 双缓冲:读写分离
- C++ 内存碎片化:成因与解法
第五阶段:实战案例
- qBreakpad 踩坑记:ARM 平台崩溃转储收集:把上面的知识用在真实产品里
怎么读这个系列
- 初学 C++:按顺序读,第一阶段每篇都不长,一周可以过完
- 准备面试:直接看「基础面试题精选」,再按薄弱点回跳对应篇目
- 写并发代码:第四阶段的死锁、无锁、双缓冲三篇连读,配合本站 GDB 系列的《GDB 实战:定位多线程死锁》效果最好