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

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.xdnf.cn/news/12008.html

相关文章:

  • 浅析EXCEL自动连接PowerBI的模板
  • SCI论文核心框架与写作要素小结
  • Spring AI 项目实战(五):Spring Boot + AI + DeepSeek + Redis 实现聊天应用上下文记忆功能(附完整源码)
  • Java面试高频核心内容
  • GRU 参数梯度推导与梯度消失分析
  • 技术文章大纲:SpringBoot自动化部署实战
  • 3. 表的操作
  • WARNING! The remote SSH server rejected x11 forwarding request.
  • webpack打包学习
  • JavaScript基础:运算符
  • Dataguard switchover遇到ORA-19809和ORA-19804报错的问题处理
  • Cross-Attention:注意力机制详解《一》
  • Java 反汇编
  • 【原理解析】为什么显示器Fliker dB值越大,闪烁程度越轻?
  • React---扩展补充
  • 祝贺XC3576H通过银河麒麟桌面操作系统的兼容性测试,取得麒麟软件互认证证书
  • 结节性甲状腺肿全流程大模型预测与决策系统总体架构设计方案大纲
  • Spring BeanPostProcessor
  • 【计算机组成原理】SPOOLing技术
  • PowerBI企业运营分析—全动态盈亏平衡分析
  • AI IDE 正式上线!通义灵码开箱即用
  • 驱动:字符设备驱动注册、读写实操
  • 用OpenNI2获取奥比中光Astra Pro输出的深度图(win,linux arm64平台)
  • React从基础入门到高级实战:React 高级主题 - 测试进阶:从单元测试到端到端测试的全面指南
  • PWM 相关知识整理
  • 【大模型:知识图谱】--4.neo4j数据库管理(cypher语法1)
  • 振动力学:欧拉-伯努利梁的弯曲振动(考虑轴向力作用)
  • Qt Quick快速入门笔记
  • 国产三维CAD皇冠CAD在「金属压力容器制造」建模教程:蒸汽锅炉
  • 音乐播放器小程序设计与实现 – 小程序源码分享