c++编码规范
C++ 编码规范
一、命名规范
命名是代码可读性的第一道门槛。统一的命名风格能让团队成员在阅读代码时迅速判断标识符的类型与作用域,减少认知负担。
· 类名采用大驼峰命名法,首字母大写,以区别于变量。
· 函数名同样使用大驼峰,动词开头体现行为语义。
· 普通变量名使用小写加下划线,简洁明了。
· 成员变量在末尾加下划线,便于与局部变量区分,避免命名冲突。
· 常量加 k 前缀,表明其不可变属性。
二、格式规范
格式一致性直接影响代码的视觉整洁度,团队必须严格遵守。
· 缩进统一使用 4 个空格,禁止使用 Tab,因为不同编辑器对 Tab 宽度解释不一,易导致排版混乱。
· 每行不超过 80 字符,过长代码应换行并对齐,便于并排查看与代码审查。
· if、for、while 的语句体必须加花括号,即使只有一行。这能防止后续添加语句时出现逻辑错误。
· 运算符两侧加空格,逗号后加空格,提升可读性。
三、代码排版
排版细节决定代码的精致程度,也是团队协作中摩擦最少的规范点。
· 一条语句一行,不要把多条语句挤在同一行,便于逐行阅读与调试。
· 不要多个变量写在同一行,每个变量单独声明,便于注释与初始化。
· 尽量用括号明确运算优先级,即使默认优先级符合预期,括号也能消除歧义,避免误读。
四、类与函数规范
类与函数是 C++ 程序的基本构件,其设计质量决定代码的可维护性。
· 单参数构造函数必须加 explicit,防止隐式类型转换带来的意外行为。
· 重写虚函数必须加 override,让编译器检查签名是否匹配,避免因拼写错误导致重写失败。
· 若类可能被继承,基类析构函数必须声明为 virtual,否则通过基类指针删除派生类对象会导致资源泄漏。
· 函数职责单一,不宜过长。一个函数只做一件事,超过 50 行应考虑拆分。
五、内存管理
C++ 手动内存管理容易出错,现代 C++ 提倡智能指针与 RAII。
· 优先使用 std::unique_ptr 和 std::shared_ptr,明确所有权语义:unique_ptr 表示独占,shared_ptr 表示共享。
· 禁止使用裸 new/delete,避免忘记释放或重复释放。
· 遵循 RAII 原则:资源在构造时获取,在析构时释放。文件、锁、socket 等都应封装为 RAII 对象。
六、头文件规范
头文件管理影响编译速度与依赖关系。
· 头文件加头文件保护宏,避免重复包含。可使用 #pragma once 或传统的宏保护方式。
· #include 按系统头文件、自定义头文件分组,组间空行分隔,顺序清晰,便于检查依赖。
· 能前向声明就不 #include,减少编译依赖。仅在需要完整类型时才包含头文件。
七、注释规范
注释应解释“为什么”而非“做什么”,代码本身已说明“做什么”。
· 函数前注明功能、参数和返回值,便于调用者理解接口。
· 复杂逻辑处加行内注释,说明设计意图、边界条件或特殊处理原因。
八、其他约束
以下为本学期实验作业的额外要求,务必逐条落实。
· 代码编码:源文件统一使用 UTF-8 编码,避免中文注释乱码。
· 提交规范:代码必须可直接编译运行,不得保留多余调试输出。
· 一致性:同一个源文件内风格必须完全统一,不要混用多种大括号、缩进风格。

浙公网安备 33010602011771号