More Effective C++
318 页
Chinese
PDF
4.5

More Effective C++

More Effective C++

作者:

年份:

简介:

引言

《More Effective C++》(中文译本常译为《更有效的C++》)是斯科特·迈耶斯1992年出版的著名著作《Effective C++》的续篇。如果说第一本书奠定了正确使用该语言的基础,那么第二本则将标准提得更高。该书写于1996年,至今仍具有现实意义,尤其适合那些希望从“仅仅会写代码”的水平提升到“理解C++深层机制”水平的读者。全书包含35条建议(Items),每条都针对一个具体问题或技术。迈耶斯不仅仅罗列规则——他解释这些规则为何有效,并给出可直接应用于实际项目的示例。

这本书是关于什么的?

《More Effective C++》涵盖了五个关键主题,这些主题在第一本书中要么阐述不足,要么是开发者面临的新挑战:

  • 异常(Exceptions):如何正确地抛出、捕获和处理异常,避免资源泄漏并保持性能。
  • 效率(Efficiency):如何编写快速代码,避免不必要的复制、临时对象和次优算法。
  • 编程技术(Techniques):高级技巧,如虚拟构造函数、智能指针、代理类和双重分派。
  • 模板与泛型编程(Templates & Genericity):如何使用模板创建灵活且可复用的组件,避免代码膨胀。
  • 继承与面向对象设计(Inheritance & OOD):虚函数、多重继承以及正确设计类层次结构的细微之处。

每条建议都是一个独立的章节,从提出问题开始,然后提供解决方案,最后以总结结束。全书语言生动,略带幽默,并包含大量C++示例。

这本书适合谁?

本书面向已有C++编程经验并熟悉语言基础(如类、继承、虚函数、模板)的程序员。如果您刚开始学习C++,尚未完成任何项目,最好从《Effective C++》或任何入门教材开始。《More Effective C++》是下一步,当您想理解如何编写不仅可运行,而且可靠、高效且易于维护的代码时。

读者将学到什么?

阅读本书后,您将能够:

  • 正确使用异常,无需担心内存泄漏和未定义行为。
  • 避免临时对象和不必要的复制,这对高性能系统至关重要。
  • 实现智能指针(smart pointers)和其他资源管理惯用法。
  • 应用模板创建灵活且安全的类型。
  • 理解何时以及如何使用多重继承,何时最好避免它。
  • 设计类,使其对错误具有鲁棒性且易于测试。
  • 通过遵循经过验证的实践,提升整体代码质量。

本书的优点

1. 实践导向。每条建议都是针对实际问题的现成解决方案。您不仅学习理论,还能获得可适应自身需求的代码。

2. 深入解释。迈耶斯不会说“照做,因为我说了算”。他解释涉及哪些语言机制、存在哪些权衡,以及所选方法为何优于其他方案。

3. 现实意义。尽管年代久远,但90%的建议对于现代C++11/14/17/20标准仍然有效。部分示例使用了过时的结构(例如auto_ptr而非unique_ptr),但这很容易调整。这本书教的是思维方式,而非盲目复制。

推荐