异常异常 处理
传统的错误处理
抛出异常
捕获异常
异常匹配
清理
标准异常
异常规格说明
异常安全
在编程中使用异常
使用异常造成的开销
单元测试 断言
一个简单的单元测试框架
自动测试
estSuite框架
测试套件
测试框架的源代码
调试技术 用于代码跟踪的宏
跟踪文件
发现内存泄漏
深入理解字符串 字符串的内部是什么
创建并初始化C++字符串
对字符串进行操作
字符串的查找
字符串的应用
输入输出流 为什么引入输入输出流
救助输入输出流
处理流错误
文件输入输出流
输入输出流缓冲
在输入输出流中定位
字符串输入输出流
输出流的格式化
操纵算子
输入输出流程序举例
国际化
深入理解模板 模板参数
有关函数模板的几个问题
模板特化
名称查找问题
模板编程中的习语
模板元编程
模板编译模型
通用算法 算法简介
函数对象
STL算法目录
通用实用程序
创建自己的STL风格算法
通用容器 器和迭代器
字符串容器
从STL容器继承
更多迭代器
基本序列容器:vector、list和deque
集合
堆栈
队列
优先队列
持有二进制位
关联式容器
将STL容器联合使用
清除容器的指针
创建自己的容器
对STL的扩充
非STL容器
运行时类型识别 运行时类型转换
typeid 操作符
多重继承
合理使用RTTI
TTI的机制和开销
多重继承 接口继承
实现继承
重复子对象
虚基类
名字查找问题
避免使用多重继承
扩充一个接口
设计模式 模式的概念
模式分类
单件
命令:选择操作
消除对象耦合
适配器模式
模板方法模式
策略模式:运行时选择算法
职责链模式:尝试采用一系列策略模式
工厂模式:封装对象的创建
构建器模式:创建复杂对象
观察者模式
多重派遣
并发 动机
C++中的并发
定义任务
使用线程
创建有响应的用户界面
使用执行器简化工作
让步
休眠
优先权
共享有限资源
保证对象的存在
不恰当地访问资源
访问控制
使用保护简化编码
线程本地存储
终止任务
防止输入/输出流冲突
举例观赏植物园
阻塞时终止
中断
线程间协作
等待和信号
生产者-消费者关系
用队列解决线程处理的问题
广播
死锁