C++设计模式实战
运用现代设计模式构建健壮的C++应用
作者:Fedor G. Pikus
译者:
陈晓伟
目录
关于作者
关于评审
前言
第一部分: C++特性与概念入门
第1章 继承与多态导论
1.1. 类与对象
1.2. 继承与类型层次结构
1.3. 多态与虚函数
1.4. 多重继承
1.5. 总结
1.6. 练习题
1.7. 扩展阅读
第2章 类模板与函数模板
2.1. C++的模板机制
2.2. 模板实例化
2.3. 模板特化
2.4. 可变参数模板
2.5. Lambda表达式
2.6. 概念约束
2.7. 总结
2.8. 练习题
2.9. 扩展阅读
第3章 内存与所有权
3.1. 技术要求
3.2. 什么是内存所有权?
3.3. C++中的内存所有权表示
3.4. 对象与视图
3.5. 总结
3.6. 练习题
3.7. 扩展阅读
第二部分: 常见的C++惯用法
第4章 交换操作:从简单到精妙
4.1. 技术要求
4.2. 交换操作与标准模板库
4.3. 如何使用交换操作
4.4. 总结
4.5. 练习题
第5章 深入解析RAII
5.1. 技术要求
5.2. C++中的资源管理
5.3. 手动资源管理的风险
5.4. RAII惯用法
5.5. 现代RAII技术的演进
5.6. 总结
5.7. 练习题
第6章 理解类型擦除
6.1. 技术要求
6.2. 何为类型擦除?
6.3. 作为设计模式的类型擦除
6.4. C++中的类型擦除实现
6.5. 类型擦除性能分析
6.6. 类型擦除使用准则
6.7. 总结
6.8. 练习题
第7章 SFINAE、概念与重载解析管理
7.1. 技术要求
7.2. 重载解析与重载集合
7.3. 模板函数中的类型替换
7.4. C++20概念与约束
7.5. SFINAE技术
7.6. 约束模板的最佳实践
7.7. 总结
7.8. 练习题
第三部分: C++设计模式
第8章 奇异递归模板模式解析
8.1. 技术要求
8.2. CRTP核心机制剖析
8.3. CRTP与静态多态
8.4. 作为委托模式的CRTP
8.5. 作为实现技术的CRTP
8.6. CRTP与策略式设计
8.7. 总结
8.8. 练习题
第9章 命名参数、方法链与构建器模式
9.1. 技术要求
9.2. 参数传递的痛点分析
9.3. C++中的命名参数实现
9.4. 通用方法链式调用
9.5. 构建器模式实践
9.6. 总结
9.7. 练习题
第10章 局部缓冲区优化
10.1. 技术要求
10.2. 小内存分配的额外开销
10.3. 局部缓冲区优化原理
10.4. 字符串之外的优化应用
10.5. 局部缓冲区优化实现细节
10.6. 局部缓冲区优化的局限性
10.7. 总结
10.8. 练习题
第11章 作用域守卫模式
11.1. 技术要求
11.2. 错误处理与资源获取即初始化(RAII)
11.3. 作用域守卫模式实现
11.4. 作用域守卫与异常处理
11.5. 类型擦除的作用域守卫
11.6. 总结
11.7. 练习题
第12章 友元工厂模式
12.1. 技术要求
12.2. C++中的友元机制
12.3. 友元与模板的协作
12.4. 模板友元工厂实现
12.5. 友元工厂与奇异递归模板模式(CRTP)的结合
12.6. 总结
12.7. 练习题
第13章 虚构造函数与工厂模式
13.1. 技术要求
13.2. 构造函数为何不能为虚函数
13.3. 工厂模式
13.4. C++中类工厂模式的变体
13.5. 总结
13.6. 练习题
第14章 模板方法模式与非虚接口惯用法
14.1. 技术要求
14.2. 模板方法模式详解
14.3. 非虚接口(NVI)原理
14.4. 非虚接口的局限性
14.5. 总结
14.6. 练习题
第四部分: 高级C++设计模式
第15章 策略式设计模式
15.1. 技术要求
15.2. 策略模式与策略式设计
15.3. 高级策略式设计实现
15.4. 实践建议与指导原则
15.5. 总结
15.6. 练习题
第16章 适配器与装饰器模式
16.1. 技术要求
16.2. 装饰器模式详解
16.3. 适配器模式实现
16.4. 适配器与策略模式对比
16.5. 总结
16.6. 练习题
第17章 访问者模式与多重分发
17.1. 访问者模式
17.2. 复杂对象的访问实现
17.3. 无环访问者模式
17.4. 现代C++中的访问者模式
17.5. 编译期访问者模式
17.6. C++17标准下的访问者模式
17.7. 总结
17.8. 练习题
第18章 并发模式
18.1. 技术要求
18.2. C++与并发
18.3. 同步原语设计模式
18.4. 并发设计模式与准则
18.5. 并发执行模式实现
18.6. 协程模式在C++中的应用
18.7. 总结
18.8. 练习题
习题解答
第1章
第2章
第3章
第4章
第5章
第6章
第7章
第8章
第9章
第10章
第11章
第12章
第13章
第14章
第15章
第16章
第17章
第18章