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

C++ 命名规范示意表

C++ 命名规范示意表

类型命名风格示例说明 / 约定
类 / 结构体PascalCaseclass NetworkManager {}每个单词首字母大写
枚举类型PascalCaseenum Color { Red, Green, Blue };枚举名首字母大写
枚举值SCREAMING_SNAKE_CASE 或 PascalCaseSTATUS_OKOk一致即可,Google 风格推荐 PascalCase
局部变量 / 普通变量lowerCamelCaseint userCount;第一个单词小写,后续单词首字母大写
成员变量lowerCamelCase 或 trailing underscoreint userCount_;避免与局部变量冲突,Google 风格推荐 _ 结尾
静态成员变量PascalCase 或 s_ 前缀static int sUserCount;团队约定即可
全局常量kPascalCase 或 SCREAMING_SNAKE_CASEconst int kMaxUsers = 100;constexpr int MAX_USERS = 100;Google 推荐 k 前缀
SCREAMING_SNAKE_CASE#define MAX_BUFFER_SIZE 1024尽量少用,prefer constexpr
函数 / 方法lowerCamelCasevoid sendMessage();动词开头,表达行为
构造 / 析构函数PascalCaseNetworkManager() / ~NetworkManager()与类名一致
Getter / SetterlowerCamelCaseint getCount(); void setCount(int c);简洁明了
布尔函数 / 变量is/has/can 前缀bool isConnected(); bool hasData();清晰表达布尔含义
命名空间lower_case 或 snake_casenamespace network {}避免全局污染,短且有意义
内部命名空间lower_casenamespace network::detail {}用于隐藏实现细节
模板类型参数TPascalCasetemplate<typename TItem>T 开头或 PascalCase
类型别名PascalCaseusing StringList = std::vector<std::string>;清晰表达类型含义
智能指针别名PascalCase + Ptrusing WidgetPtr = std::shared_ptr<Widget>;一致性和可读性

命名原则

  • 函数 → 动词:computeValue(), sendMessage()
  • 变量 → 名词:userCount, bufferSize
  • 类 → 名词:NetworkManager, FileReader
  • 布尔变量 → is/has/can:isConnected, hasData
  • 智能指针 → Ptr 后缀:WidgetPtr
  • 避免全局变量,优先类封装或命名空间
  • 一致性最重要,项目内部统一风格比选择某种风格更重要
http://www.dtcms.com/a/343155.html

相关文章:

  • iOS 应用上架瓶颈与解决方案 从开发到审核的全流程实战
  • 机器学习中的聚类与集成算法:从基础到应用
  • word参考文献对齐
  • week3-[循环嵌套]好数
  • 交易所开发实战:打造安全高效的数字货币交易平台
  • 使用java制作minecraft3.0版本
  • 什么是默克尔树
  • Android系统框架知识系列(十三):Sensor Manager Service - Android的感官世界
  • Trae配置rules与MCP
  • 企业微信+AI在金融行业落地:从部署到场景的实践路径
  • CLruCache::BucketFromIdentifier函数分析
  • CroCT
  • 在互联网大厂的Java面试:谢飞机的搞笑历险记
  • Uniapp非脚手架项目打包为5+ App后,在Android端按返回键会意外退出应用。
  • 基于昇腾玩转电影级视频生成模型Wan 2.2
  • ES_索引的操作
  • 基础网络模型
  • 【矩池云】实现Pycharm远程连接,上传数据并解压缩
  • 为什么程序部署到线上,就无法读取环境变量了
  • B2B工业品制造业TOB大客户营销培训老师培训师唐兴通谈AI数字化销售AI销冠底层逻辑数字化转型创新增长业绩
  • MyBatis-Plus MetaObjectHandler的几个坑(主要是id字段)
  • 《AI智脉速递》2025 年 8 月15 日 - 21 日
  • JetBrains 内的 GitHub Copilot Agent Mode + MCP:从配置到实战
  • vmware安装centos7
  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第二章知识点问答(21题)
  • A股大盘数据-20250821 分析
  • 领域驱动中IUnitOfWork是干什么的
  • 【StarRocks】-- SQL CTE 语法
  • 机器学习中的集成算法与 k 均值聚类算法概述
  • 机器学习5