良好的编程规范可以改善软件质量,缩短上市时间,提升团队效率,简化维护工作。在本书中,两位全世界最受尊敬的 C++ 专家将全球 C++ 社区的集体智慧和经验凝结成一整套编程规范。这些规范可以作为每一个开发团队制定实际开发规范的基础,更是每一位 C++ 程序员应该遵循的行事准则。本书实际上涵盖了 C++ 程序设计的各个方面,包括:设计和编码风格、函数、操作符、类的设计、继承、构造与析构、赋值、名字空间、模块、模板、泛型、异常、 STL 容器和算法等等。书中对每一条规范都给出了言简意赅的叙述,并辅以实例说明;书中还给出了从类型定义到错误处理等方面的大量 C++ 最佳实践,包括许多最新总结和标准化的技术,即使使用 C++ 多年的程序员也会从中受益匪浅。 本书适合于各层次 C++ 程序员,也可作为高等院校 C++ 课程的教学参考书。
本书涵盖了C++程序设计的方方面面,包括设计和编码风格、函数、操作符、类的设计、继承、构造与析构、赋值、名字空间、模块、模板、泛型、异常、STL容器和算法等。书中对每一条规范都给出了言简意赅的叙述,并辅以实例说明;书中还给出了从类型定义到错误处理等方面大量的C++最佳实践,包括许多最新总结出的和标准化的技术,即使使用C++多年的程序员也会从中受益匪浅。
在本书中,两位知名的C++专家将全球C++界20年的集体智慧和经验凝结成一套编程规范。这些规范可以作为每一个开发团队制定实际开发规范的基础,更是每一位C++程序员应该遵循的行事准则。书中对每一条 规范都给出了精确的描述,并辅以实例说明;从类型定义到错误处理,都给出了最佳的C++实践。即使使用C++多年的程序员也会从本书中受益匪浅。
本书适合于各层次C++程序员使用,也可作为高等院校C++课程的教学参考书。
组织及策略上的问题(Organizational and Policy Issues)
0. 不拘小节(或:了解什么不需要被规范化)
1. 在高警告级别下干净地编译
2. 使用自动化的构建(build)系统
3. 使用版本控制系统(version control system)
4. 在代码复查上投资
设计风格(Design Style)
5. 给每一个实体分配一份内聚的职责
6. 以正确,简单,清晰为上
7. 编程中应知道何时和如何考虑可伸缩性
8. 不要进行不成熟的优化
9. 不要进行不成熟的劣化
10. 尽量减少全局和共享数据
11. 隐藏信息
12. 了解何时及如何为并发性编写代码
13. 确保资源为对象所占有。使用显式的RAII和智能指针
编程风格(Coding Style)
14. 宁可在编译和链接时出错也不要在运行时出错
15. 积极使用const
16. 避免使用宏
17. 避免使用魔数(magic numbers)
18. 尽可能局部地声明变量
19. 总是初始化变量
20. 避免太长的函数。避免太深的嵌套
21. 避免跨编译单元的初始化依赖
22. 尽量减少定义性依赖。避免循环依赖
23. 头文件应该自给自足
24. 总是编写内部#include防护符。决不要用外部#include防护符
函数与操作符(Functions and Operators)
25. 正确地选择通过值、(智能)指针或者引用传递参数
26. 保持重载操作符的自然语义
27. 优行使用算术操作符和赋值操作符的标准形式
28. 优先使用++和--的标准形式。优先调用前缀形式
29. 考虑重载以避免隐含类型转换
30. 避免重载&&, ||, 或, (逗号)
31. 不要编写依赖于函数参数求值顺序的代码
类设计及继承
构造,析构,及复制操作
名字空间与模块
模板与泛型
错误处理与异常
STL:容器
STL:算法
类型安全
参考文献
摘要汇总
索引