C++编程标准
C++编程标准
简介:
引言
《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》(中文译名为《C++编程标准:101条规则与建议》)一书于2004年出版,但至今仍是关于C++代码风格与质量最权威的参考书之一。作者Herb Sutter和Andrei Alexandrescu是C++领域公认的专家,他们的名字与对语言的深刻理解和实用建议紧密相连。这本书不教语法——它教你像专业C++开发者一样思考。
这本书是关于什么的?
本书汇集了101条规则,按主题分组。每条规则都附有简要说明、示例(通常包含“错误”和“正确”两种写法)以及更深入资料的参考链接。主要主题包括:
- 代码组织——正确使用头文件、命名空间,避免循环依赖。
- 类与接口设计——SOLID原则、RAII惯用法、Pimpl惯用法、零/五原则。
- 资源与内存管理——安全使用智能指针、避免内存泄漏、异常处理。
- 模板与泛型编程——如何编写高效且可移植的模板。
- 性能——在不牺牲可读性的前提下进行优化的建议。
- 异常安全性——基本保证、强保证、不抛出保证。
这本书适合谁?
本书面向已经熟悉C++基础的程序员。初学者会觉得它很难——作者不解释基本结构,而是直接深入细节。理想的读者是那些希望从“编写能运行的代码”水平提升到“编写可靠、高效且易于维护的代码”水平的开发者。
读者能学到什么?
- 如何避免90%的内存和异常处理常见错误。
- 为什么
std::vector通常比std::list更好,即使看起来相反。 - 如何正确设计接口,使其难以被误用。
- 何时使用虚函数,何时使用模板。
- 如何编写在异常发生时不会崩溃的代码。
- 为什么
const不仅仅是一个修饰符,而是一个设计工具。
本书的优势
1. 实用性。每条规则都是一个现成的方案,可以立即应用于项目中。没有抽象理论——只有真正有效的内容。
2. 作者权威。Sutter和Alexandrescu不仅仅是理论家,他们积极参与了C++标准化和编译器开发。他们的建议经过了多年的实践检验。
3. 简洁。240页——不是一本让人望而生畏的“大部头”。一周内即可读完,之后可作为桌面参考书使用。
4. 与其他资料的关联。每条规则后都附有更详细资料的链接:Scott Meyers的书籍、C++ Report杂志的文章、语言标准。这是进一步学习的绝佳起点。
5. 语言并未过时。尽管出版于2004年,90%的规则对于C++17/20仍然适用。一些建议(例如避免使用std::auto_ptr)已成为历史,但作者对此有预先说明。
推荐给谁?
本书必读人群:
- 在生产环境中使用C++的开发者——尤其是在金融、游戏、高负载系统领域。
- 希望为团队建立统一代码标准的技术主管和架构师。
- 深入学习C++的高年级学生。
- 所有从C转向C++并希望避免“带类的C”风格的人。