这是一套从 C++ 基础→企业级进阶 的系统路线,覆盖核心进阶语法、STL 深度应用、内存管理、多线程、性能优化、工程实践,学完可直接胜任中高级 C++ 开发岗位。
我会用清晰、实用、可落地的方式讲解,不堆砌晦涩概念。
一、C++ 进阶核心定位
你已经掌握:基础语法、函数、类、继承、指针、基础 STL。进阶目标 :写出高效、安全、可维护、高性能的 C++ 代码。
二、第一阶段:现代 C++ 核心(C++11/14/17/20)
这是进阶最重要的部分,也是企业面试必考。
1. 右值引用 & 移动语义
- 解决:拷贝开销大、临时对象冗余
- 核心:
&&、std::move、移动构造/移动赋值 - 意义:让容器 / 字符串高效转移资源,而非拷贝
cpp
运行
string s1 = "hello";
string s2 = move(s1); // 不拷贝,直接转移内存
2. 完美转发 std::forward
保持参数值类别(左值 / 右值)不变,用于通用模板。
3. 智能指针(必掌握)
std::unique_ptr:独占所有权,最高性能std::shared_ptr:共享所有权,引用计数std::weak_ptr:解决循环引用企业规范:优先用智能指针,几乎不用裸 new/delete
4. Lambda 表达式
现代 C++ 最常用语法,用于函数对象、回调、算法绑定:
cpp
运行
auto func = [&](int a) { return a * 2; };
5. 可变参数模板、constexpr、if constexpr
编译期计算,让程序运行更快。
三、第二阶段:STL 进阶与原理
基础会用 ≠ 进阶掌握进阶必须懂:底层数据结构 + 时间复杂度 + 迭代器失效
必须精通的容器
- vector:内存扩容机制、emplace_back 优化
- list / forward_list:链表结构
- deque:双端队列
- map / set:红黑树(有序)
- unordered_map:哈希表(无序、最快查询)
- queue / stack:适配器
进阶技能
- 手写简单容器(加深原理)
- STL 算法深度使用(sort、find_if、transform、accumulate)
- 自定义哈希函数、比较函数
四、第三阶段:C++ 内存管理进阶
这是 C++ 区别于其他语言的核心优势,也是难点。
1. 内存分区
栈、堆、全局 / 静态、常量、代码区
2. 内存池技术
减少频繁 new/delete 开销,游戏 / 后端 / 高性能框架必用。
3. 内存泄漏检测
智能指针 + Valgrind + ASAN
4. RAII 机制
C++ 最核心设计思想 资源获取即初始化,利用析构函数自动释放资源。
五、第四阶段:面向对象进阶 & 设计模式
1. OOP 深度理解
- 多态原理:虚函数表、虚指针
- 纯虚函数、抽象类
- 继承切片、菱形继承与虚继承
2. 常用设计模式(C++ 工程师必备)
- 单例模式(懒汉 / 饿汉 / 线程安全)
- 工厂模式
- 适配器模式
- 观察者模式
- 原型模式
- 责任链模式
能写、能讲、能应用 = 进阶达标
六、第五阶段:C++ 多线程与并发(高薪必备)
核心 API
std::threadstd::mutex/lock_guard/unique_lockstd::condition_variablestd::atomic原子操作std::async/std::future
进阶重点
- 线程安全
- 死锁避免
- 无锁编程
- 生产者消费者模型
七、第六阶段:性能优化
- 减少拷贝(移动语义、引用)
- 减少内存分配(内存池、对象池)
- 循环优化、缓存友好(Cache Locality)
- 多线程并行计算
- 编译期优化(constexpr、consteval)
七、第七阶段:工程化 & 工程工具
- CMake 构建(必须会)
- GDB 调试
- Git 版本管理
- 日志、单元测试(Google Test)
- 静态代码检查