《C++编程规范》学习笔记(4)编程风格
第14条 宁要编译时和连接时错误,也不要运行时错误
- 能在编译时做的事情,就不要推迟到运行时。运行时的检查取决于控制流和数据的具体情况,很难知道检查是否彻底。
- 静态检查与数据和控制流无关
- 静态表示的模型更加可靠
- 静态检查不会带来运行时开销。
- 编译时多态。定义泛型函数或类型时,考虑用编译时多态(模板)代替运行时多态(虚拟函数)。前者产生的代码能够更好地进行静态检查。(item 64)。
- 枚举。在表示符号常量或受限整数时考虑定义enum
- 向下强制。 如果经常使用dynamic_cast(或者更糟糕的static_cast),则可能说明基类提供的功能太少了。
- 对于非得运行时检查的情况,应使用断言来检查内部编程错误(item 68)。
- 对于其他的运行时错误,遵循“错误处理和异常“部分的其他建议(item 69-75)
第15条 积极使用const
第16条 避免使用宏
第17条 避免使用魔数
第18条 尽可能局部的声明变量
局部变量的生存期超过必须的长度会产生以下缺点:
- 他们会使程序更难以理解和维护
- 他们的名字会污染上下文
- 他们不能总是被合理的初始化