NamingConvention.md 4.1 KB

命名规范

C++ 命名规范

C++ 命名规范有助于提高代码可读性、可维护性和团队协作效率。下面是常见的 C++ 命名规范建议,分为多个维度:


🧱 一、基础命名风格

类型 命名风格 示例
变量 lowerCamelCase userName, totalCount
函数 lowerCamelCase calculateTotal(), printReport()
类 / 结构体 UpperCamelCase(PascalCase) User, AccountManager
常量 / 宏定义 ALL_CAPS_WITH_UNDERSCORES MAX_BUFFER_SIZE, PI
命名空间 lowercase_with_underscoresCamelCase network_utils, MyProject
枚举类型 UpperCamelCase(类名) + 枚举值 UPPER_CASEkCamelCase enum class Color { RED, GREEN };enum class Color { kRed, kGreen };
模板类型参数 PascalCase template<typename T>
私有成员变量 m_ 前缀或 _ 后缀 m_valuevalue_
静态成员变量 s_ 前缀 s_instance

📦 二、作用域相关命名

  • 避免使用全局变量,推荐封装到命名空间或类中。
  • 命名空间应避免与标准库命名冲突,例如不要叫 stdstring 等。
  • 使用命名空间分组功能模块,例如:
  namespace app {
    namespace logging {
      void logInfo(const std::string&);
    }
  }

📘 三、类与成员命名建议

  • 类名是名词,表示一个事物(如 User, DatabaseConnection)。
  • 方法名是动词或动词短语(如 loadData(), sendRequest())。
  • 构造函数和析构函数使用类名命名,如 User()~User()
  • 避免无意义缩写:clntMgrclientManager

💡 四、枚举建议

方式一:传统枚举(C++98 风格)

enum Color {
  COLOR_RED,
  COLOR_GREEN,
  COLOR_BLUE
};

方式二:强类型枚举(C++11 enum class,推荐)

enum class Color {
  Red,
  Green,
  Blue
};
Color c = Color::Red;

✅ 推荐使用 enum class 来避免命名污染


🔐 五、文件和命名约定

类型 示例
.h/.hpp 文件 user_manager.h, math_utils.hpp
.cpp 文件 user_manager.cpp
include guard(C++11 前) #ifndef USER_MANAGER_H
#pragma once(C++11+,推荐) 顶部写 #pragma once

🧼 六、命名习惯建议

  • 避免单字符变量(除 i, j 等循环计数)
  • 尽量语义明确,比如 dataBufferbuf 更清晰
  • 不要过度缩写,numEmployees 优于 numEmp

🧰 七、团队风格标准(建议)

可参考主流项目的命名规范,例如: