学完本章后,应该充分认识到随意处理资源管理所带来的危险。我们已经学习了 C++ 中最广泛使用的资源管理惯用法 —— RAII(资源获取即初始化)惯用法。通过这种惯用法,每个资源都由一个对象拥有。构造(或初始化)该对象即获取资源,而销毁该对象则释放资源。看到了 RAII 如何解决资源管理中的问题,例如资源泄漏、意外共享资源以及错误地释放资源。还学习了编写异常安全代码的基础知识,至少在防止资源泄漏或误处理方面如此。编写 RAII 对象本身并不复杂,但有几个需要注意的陷阱。最后,回顾了当错误处理必须与 RAII 结合时所产生的复杂性。
RAII 是一种资源管理惯用法,但它也可以视为一种抽象技术:复杂的资源隐藏在简单的资源句柄之后。下一章将介绍另一种抽象惯用法 —— 类型擦除:我们将不再隐藏复杂对象,而是隐藏复杂类型。