算法第一章作业

本学期 C++ 编码规范可归纳为以下八个方面:

  1. 命名规范
    自定义代码按课程统一风格命名:类名用大驼峰,如 StudentManager;函数名用大驼峰或小驼峰,如 GetName() 或 getName()。标准库采用小写蛇形命名,如 push_back。常量、成员变量和布尔变量等命名属推荐约定,如 kMaxSize、name_、is_valid,应保持统一。
  2. 格式规范
    缩进、行宽、大括号和空格使用应保持项目统一。K&R 风格 if (x) { 与 Allman 风格将大括号另起一行均合法,但同一项目内不得混用。
  3. 注释规范
    简单函数可少写注释;复杂接口、算法和易错逻辑应说明功能、参数、返回值和异常。注释应解释“为什么”,而非重复代码表面含义。
  4. 头文件与文件组织
    一般规则是声明放头文件,实现放 .cpp。模板、inline 函数及需跨翻译单元使用的 constexpr 函数,在传统 C++11/14/17 模型中通常定义在头文件;若 constexpr 仅用于单个 .cpp,可置于该文件,C++20 模块也支持声明与实现分离。源文件先包含自身头文件是工程约定。
  5. 函数与类
    public 在前、private 在后为推荐顺序。单参数构造函数推荐加 explicit,如 explicit Student(int id);。多态基类析构函数应为 virtual,如 virtual ~Base() = default;。
  6. 内存与资源管理
    优先使用 RAII 和智能指针;std::unique_ptr 通常优先于 std::shared_ptr。避免裸 new/delete,优先使用 std::vector、std::string 等标准容器;非拥有指针仍可使用裸指针,但须明确所有权和释放责任。
  7. 类型与安全
    使用 nullptr 而非 NULL。避免 C 风格强制转换,推荐 static_cast、dynamic_cast、const_cast、reinterpret_cast,其中后两者应尤其谨慎。避免魔法数字,但 for (int i = 0; i < 10; ++i) 这类直观小数字可例外。
  8. 工程实践
    按课程要求使用 C++11/14/17 等标准,版本由编译选项控制,如 -std=c++17 或 /std:c++17。GCC/Clang 常用 -Wall -Wextra,MSVC 常用 /W4。课程作业要求零编译警告,即消除全部编译警告。
posted @ 2026-09-29 22:06  罗嘉惠  阅读(4)  评论(0)    收藏  举报