目录
1. 程序结构与类型系统
1.1 C++ 程序的基本结构
1.2 基本数据类型
1.3 初始化与类型推导
1.4 const 与 constexpr
1.5 运算符与表达式
2. 字符串
2.1 C 风格字符串
2.2 std::string
2.3 字符串与数字转换
3. 函数与参数传递
3.1 不同类型的参数传递
3.2 函数重载
4. 指针与引用
4.1 nullptr
4.2 指向常量的指针与常量指针
4.3 智能指针
4.4 悬空引用与失效规则
5. 对象生命周期与资源管理
5.1 存储期与对象生命周期
5.2 new 与 delete
5.3 RAII
6. 类、对象与多态
6.1 类的职责
6.2 构造函数与成员初始化列表
6.3 析构函数
6.4 this、静态成员与友元
6.5 继承与运行时多态
7. 拷贝、移动
7.1 浅拷贝与深拷贝
7.2 零法则、三法则与五法则
7.3 左值、右值与引用折叠
7.4 std::move
7.5 移动构造与移动赋值
7.6 拷贝消除
8. 运算符重载与类型转换
8.1 运算符重载
8.2 四种命名类型转换
8.3 隐式转换与 explicit
9. 模板与泛型编程
9.1 函数模板
9.2 类模板
9.3 特化与重载
9.4 if constexpr
9.5 泛型代码的约束
10. STL 容器、迭代器与算法
10.1 STL 的组成
10.2 顺序容器
10.3 关联容器
10.4 容器适配器
10.5 迭代器失效
10.6 常用算法
10.7 Lambda 表达式
10.8 std::tuple
11. 异常处理与文件 I/O
11.1 异常处理流程
11.2 异常安全保证
11.3 noexcept
11.4 文件输入输出
12. 项目中的使用原则
12.1 先表达所有权,再选择类型
12.2 优先使用标准库抽象
12.3 头文件与源文件职责
12.4 编译器警告与运行期检查
13. 数值表示和常见应用
13.1 二进制、八进制与十六进制字面量
13.2 IEEE 754 浮点表示
13.3 文本文件与二进制文件
13.4 位运算
13.5 蛇形填数
13.6 平闰年判断
14. 总结
15. 参考资料