C++编程规范:打造高效头文件

需积分: 35 42 下载量 126 浏览量 更新于2024-08-08 收藏 2.45MB PDF 举报
"编写好用的头文件和BUILD文件的规范" 在编程中,编写高效、易用的头文件是至关重要的,特别是在大型项目或公共组件的开发中。斯坦福机器学习笔记提到了一些编写头文件的规则,这些规则旨在提高代码的可读性、可维护性和防止潜在的问题: 1. **#pragma once**:在头文件开头使用此指令防止文件被多次包含,替代传统的`#ifndef/#define/#endif`预处理器宏,以简化头文件结构。 2. **命名空间**:推荐使用特定的命名空间,如`MMO2oComm`,以避免全局命名冲突,确保代码的隔离性。 3. **避免using namespace**:头文件中不应使用`using namespace`,以免污染作用域,导致外部源文件可能的解析冲突。应始终使用完全限定的类型名称。 4. **字符串类型**:使用`std::string`而非`char*`传递字符串,以利用`std::string`提供的安全性和便利性。 5. **const &**:合理使用`const &`作为参数,减少不必要的对象复制,提高性能。 6. **避免宏**:尽量使用模板代替宏,以提高代码可读性和避免宏可能导致的意外行为。如果必须使用宏,需确保其设计合理并经过C++专家审查。 7. **模版的使用**:模版的实现应在头文件中,并且对于内联函数使用`inline`关键字,以防链接时找不到符号。如果有必要,应在头文件中声明所有模板实例化。 8. **const和const方法**:在类的声明中使用`const`修饰方法,表明这些方法不会改变对象状态。 9. **override、virtual和final**:使用`override`明确指定重写基类方法,使用`virtual`声明虚函数,使用`final`阻止进一步的重写,增强代码的意图清晰度。 10. **函数重载**:用函数重载代替不同名称表示相同功能,以保持一致性,便于其他开发者理解和使用。 11. **注释**:为复杂的功能添加注释,提供函数说明、参数说明、返回值说明和使用示例,提高代码的可理解性。 12. **返回值与错误处理**:C++函数应直接通过返回值返回结果,错误情况抛出`std::exception`,避免使用错误码模式。 13. **避免重复定义**:不要为标准库中已有的函数提供新的实现,遵循DRY(Don't Repeat Yourself)原则。 此外,`BUILD`文件是用于定义构建过程的脚本,例如在腾讯的SvrKitServer中,`cc_library`是用于创建自定义库的构建规则。它包括目标库名、源文件列表等配置,指导编译系统如何处理和编译源代码。 通过遵循这些规则和最佳实践,可以构建更健壮、易于维护的C++项目,同时提升团队协作效率。