当前位置: 首页 > news >正文

c++ 命名规则

目录

    • 总结
    • 1. 类名(Class Names)
    • 2. 变量名(Variable Names)
    • 3. 函数名(Function Names)
    • 4. 宏定义(Macros)
    • 5. 命名空间(Namespaces)
    • 6. 枚举(Enums)和枚举值(Enum Values)
    • 7. 文件名(File Names)
    • 8. 模板参数(Template Parameters)
    • 9. 其他注意事项

总结

总结
类名:大驼峰法(PascalCase)。
变量/函数名:小驼峰法(camelCase)。
全局常量:使用全大写字母加下划线分隔(SNAKE_CASE)。
常量/宏:全大写加下划线(SNAKE_CASE)。
静态成员变量:可加前缀s_或后缀_(团队约定)
命名空间/文件:全小写,可加下划线

在C++编程中,良好的命名规则对于代码的可读性、可维护性和团队协作至关重要。以下是C++中常见的命名规则和最佳实践,按不同标识符类型分类说明:

1. 类名(Class Names)

规则:使用大驼峰命名法(PascalCase),即每个单词的首字母大写,无下划线。

class StudentRecord;
class BankAccountManager;

理由:类名通常代表抽象概念,大驼峰法能清晰区分类与其他标识符。

2. 变量名(Variable Names)

规则:使用小驼峰命名法(camelCase),即首字母小写,后续单词首字母大写。

int studentCount;
double averageScore;

全局常量:使用全大写字母加下划线分隔(SNAKE_CASE)。
const int MAX_STUDENTS = 100;

静态成员变量:可加前缀s_或后缀_(团队约定)。
class Example {

static int s_counter; // 或 static int counter_;
};

3. 函数名(Function Names)

规则:使用小驼峰命名法,动词开头描述行为。

void calculateAverage();
bool isValidInput(const std::string& input);

理由:函数名应明确表达其功能,动词开头有助于理解。

4. 宏定义(Macros)

规则:使用全大写字母加下划线分隔(SNAKE_CASE),并避免与现有标识符冲突。

#define PI 3.14159
#define MAX_BUFFER_SIZE 1024

注意:C++中推荐使用constexpr替代宏定义常量。

5. 命名空间(Namespaces)

规则:使用全小写字母,可加下划线分隔(团队约定)。
namespace company_name {namespace project_name {// ...}
}

理由:避免与类名冲突,保持简洁。

6. 枚举(Enums)和枚举值(Enum Values)

规则:
枚举类型名:使用大驼峰法。
枚举值:使用全大写字母加下划线分隔。

enum class Color { RED, GREEN, BLUE };  // C++11风格
enum ErrorCode { SUCCESS = 0, FILE_NOT_FOUND = 1 };

7. 文件名(File Names)

规则:使用全小写字母,可加下划线或连字符(根据团队约定)。

示例:
student_record.h(头文件)
student_record.cpp(源文件)

理由:保持与类名或模块名的一致性。

8. 模板参数(Template Parameters)

规则:使用大写字母(通常为单字母或简短名称)。
示例:

template <typename T, size_t N>
class Array { /* ... */ };

9. 其他注意事项

避免缩写:除非是广泛认可的缩写(如HTTP、IO)。
一致性:团队内统一命名风格(如是否使用匈牙利命名法)。
描述性:名称应准确反映用途,避免temp、data等模糊名称。
避免保留字:不要使用C++关键字(如class、new)作为标识符。

http://www.lqws.cn/news/139069.html

相关文章:

  • LeetCode 2297. 跳跃游戏 VIII(中等)
  • Linux:理解库制作与原理
  • Python try-except-else 语句详解
  • AI赋能国风艺术:穿越时空的诗词画卷如何诞生?
  • 聊一聊接口测试的意义有哪些?
  • Unity与Excel表格交互热更方案
  • Vue全局事件总线
  • [Java 基础]创建人类这个类小练习
  • 代码随想录刷题day29
  • 微信小程序前端面经
  • 题山采玉:Day2
  • SCI论文核心框架与写作要素小结
  • Java - 数组
  • 高速ADC数据格式与JESD204B IP数据格式映射关系
  • Linux环境基础开发工具使用
  • 【工具使用】STM32CubeMX-FreeRTOS操作系统-任务、延时、定时器篇
  • Visual Studio 2022 在 Windows 11 添加资源时崩溃问题分析与解决方案
  • 数据结构与算法:动态规划中根据数据量猜解法
  • macOS 连接 Docker 运行 postgres,使用navicat添加并关联数据库
  • 【TCP/IP和OSI模型以及区别——理论汇总】
  • 实验设计如何拯救我的 CEI VSR 28G 设计
  • MySQL 8.0 窗口函数全面解析与实例
  • Day44 Python打卡训练营
  • 陈伟霆电视剧《九门》开机 续写传奇热血新篇
  • Apache APISIX
  • DeviceNET从站转EtherNET/IP主站在盐化工行业的创新应用
  • 计算机操作系统知识点总结②
  • APx500录制波形
  • 代码训练LeetCode(22)研究者H指数
  • Python 区块链开发实战:从零到一构建智能合约