Standard C++ 基础回炉|00:Phase 1 总览与学习路线
从对象与生命周期重新开始,按 RAII、所有权、移动语义、STL、模板和对象模型的顺序,恢复现代 C++ 的基本功。
8 分钟阅读
从对象与生命周期重新开始,按 RAII、所有权、移动语义、STL、模板和对象模型的顺序,恢复现代 C++ 的基本功。
从对象何时真正存在开始,重新区分作用域、存储期、生命周期与所有权,并用可运行实验观察构造和析构顺序。
通过返回局部变量地址的实验,理解对象生命周期、悬空指针、未定义行为,并使用 ASan 定位 stack-use-after-return。
通过对象生命周期跟踪实验,理解函数返回对象时的移动构造、拷贝消除,以及 C++17 下 RVO 与 NRVO 的区别。
"通过实际观察 std::vector 的 size、capacity、data 地址变化与 ASan 的 heap-use-after-free 报告,理解动态扩容、reserve、连续存储以及指针、引用和迭代器失效。"
围绕作用域与对象生命周期、返回值优化、构造异常、成员初始化顺序、vector 失效规则、裸指针与智能指针所有权,以及异步 Lambda 引用捕获,系统回顾现代 C++ 中最容易混淆的 8 个基础问题。
从构造异常、资源所有权、显式 close、锁、线程与事务出发,系统理解 RAII 如何把资源收尾责任绑定到对象生命周期,并通过树莓派 + AddressSanitizer 实验验证异常展开中的资源安全。
从浅拷贝导致的重复释放出发,系统理解拷贝构造、拷贝赋值、移动构造、移动赋值、左值与右值、std::move、noexcept,以及 Rule of Three、Rule of Five 和 Rule of Zero,并通过树莓派 + AddressSanitizer 实验验证资源复制与所有权转移的安全性。