Exceptional C++
240 页
Chinese
PDF
4.5

Exceptional C++

Exceptional C++

作者:

年份:

简介:

引言

赫布·萨特的《Exceptional C++》(1999年)并非面向初学者的教程,而是一本包含50个工程问题的合集,这些问题将促使您真正思考如何编写C++代码。在一个软件可靠性比编写速度更受重视的世界里,这本书仍然是深入理解该语言的典范。萨特不仅给出答案——他还教会您以异常情况、资源管理和容错接口设计的思维方式进行思考。

尽管这本书已出版超过20年,但其思想(RAII、异常保证、智能指针)已成为现代C++(C++11及更高版本)的基础。如果您想不再害怕异常,并开始编写不会在最不合时宜的时刻“崩溃”的代码——那么这本书就是为您准备的。

本书内容

《Exceptional C++》采用“问答”形式(问题——解决方案——解析)。每一章都涉及可靠编程的一个特定方面:

  • 异常与安全:如何编写即使发生错误也不会泄漏资源、并将对象保持在一致状态的函数。
  • RAII(资源获取即初始化):为什么这是C++的主要惯用法,以及如何将其应用于内存、文件、互斥锁的管理。
  • 模板与泛型编程:实例化、偏特化、SFINAE的细微之处。
  • 继承与多态:如何正确设计类层次结构,以免违反里氏替换原则。
  • 内存管理:new/delete运算符、placement new、运算符重载。
  • 接口设计:如何设计一个难以被误用的API。

适合哪些读者

本书面向已有经验的C++程序员(至少1-2年活跃开发经验)。它将有助于:

  • 希望编写可靠生产代码的开发者。
  • 准备技术面试的人(书中的问题经常出现在Google、Microsoft、Yandex的面试中)。
  • 寻找研讨会分析案例的教师和导师。
  • 所有希望理解C++标准惯用法背后“原因”,而不仅仅是“方法”的人。

读者将学到什么

阅读后,您将能够:

  • 为其函数制定并验证异常保证(基本保证、强保证、nothrow保证)。
  • 正确使用std::auto_ptr(及其现代替代品unique_ptr/shared_ptr)进行自动资源管理。
  • 避免运算符重载(尤其是operator=和operator[])中的陷阱。
  • 设计能在STL容器中正确工作的类。
  • 理解何时以及如何在不损害架构的情况下使用mutable、volatile、const_cast。
  • 编写在替换不合适的类型时不会“爆炸”的模板函数(SFINAE)。
  • 实现copy-and-swap惯用法以实现安全的赋值操作。

优势所在

  • 深度与实用性。每个问题都来自作者经验中的真实问题。您不会找到像“猫狗”这样的抽象示例。
  • “问答”格式。可以从任何章节开始阅读。非常适合“小憩”——15分钟解决一个问题。
  • 强调“原因”。萨特不仅解释正确的解决方案,还解释其动机:为什么其他选项不好,存在哪些权衡。
  • 写作风格。生动活泼,带有一丝幽默和自嘲。这本书不像一本枯燥的手册。
  • 永恒的价值。即使在C++20/23时代,RAII和异常安全的原则仍然不变。这本书教授的是不会过时的基础。

推荐给

推荐