《C++编程规范》一书深入探讨了C++语言的编码规范,旨在帮助开发者编写出更清晰、一致且易于维护的代码。以下是对该书部分章节所涉及的关键知识点的详细阐述: ### 第1章 命名原则 #### 1.1 类型名 类型名应当明确反映其数据特性或功能,避免使用通用或模糊的名称,如`int`、`char`等应具体化,例如`PersonID`代替`int`。 #### 1.2 变量和函数名 变量与函数名应清晰描述其作用,采用有意义的英文单词组合,遵循一定的命名约定,如`camelCase`或`snake_case`,确保代码的可读性。 #### 1.3 全大写的函数名(建议) 虽然建议避免,但在某些情况下,如宏定义中,全大写名称有助于区分于其他命名风格,减少命名冲突。 #### 1.4 宏、常量和模板名 宏、常量和模板名应使用全大写,中间以下划线分隔,如`MAX_SIZE`,以示区别于变量和函数名。 #### 1.5 指针标识符名 指针名应包含`Ptr`后缀,如`personPtr`,明确标识其类型,增强代码可读性。 #### 1.6 变量名前缀 使用前缀如`m_`或`s_`来区分成员变量和静态变量,有助于快速识别变量的作用域。 #### 1.7 匿名命名空间级标识符的前缀 为匿名命名空间内的标识符添加特定前缀,如`ns_`,防止命名冲突。 #### 1.8 减少匿名命名空间级标识符 尽量减少匿名命名空间的使用,以减少不必要的命名复杂性。 #### 1.9 避免使用国际组织占用的格式 避免使用可能与ISO、IEEE等国际组织命名体系相冲突的命名,以减少混淆。 #### 1.10 名字要本着清楚、简单的原则 名称应简洁明了,避免冗长,同时确保意义清晰。 #### 1.11 尽量用可发音的名字 避免使用难以发音或拼写的名称,便于口头交流和记忆。 #### 1.12 尽量用英文命名 使用英文作为命名语言,以适应国际化的开发环境。 #### 1.13 选择通用词汇并贯穿始终 在项目中统一使用通用词汇,增强代码的一致性和可读性。 #### 1.14 避免用模棱两可、晦涩或不标准的缩写 避免使用如`str`代替`string`这样的不明确缩写,以免引起误解。 #### 1.15 避免使用会引起误解的词汇 例如,避免使用`date`作为变量名,因为它可能会与`std::date`库冲突。 #### 1.16 减少名字中的冗余信息 名称中不应包含类型或作用域的信息,如`intNum`应改为`num`。 #### 1.17 起名尽量通俗,避免过度专业化 名称应具有一定的普适性,不过度专业化,以便于理解和扩展。 #### 1.18 名字最好尽可能精确地表达其内容 如`getPersonById`比`getPerson`更具体,能准确描述函数的功能。 #### 1.19 避免名字中出现形状混淆的字母或数字 避免使用易混淆的字符组合,如`1l`和`Il`,以防止视觉混淆。 #### 1.20 命名类和成员使得“object.method()”有意义 类和成员的命名应使得调用链具有逻辑性和描述性。 #### 1.21 类和对象名应是名词 类名应描述其代表的对象或概念,如`Person`。 #### 1.22 实现行为的类成员函数名应是动词 成员函数应描述其所执行的动作,如`move()`。 #### 1.23 类的存取和查询成员函数名应是名词或形容词 用于获取或设置属性的函数,如`getName()`或`isReady()`。 #### 1.24 变量名应是名词 变量名应描述其存储的数据类型,如`name`。 #### 1.25 布尔型的名字要直观 布尔变量应使用`isXxx`或`hasXxx`的形式,如`isActive`。 #### 1.26 函数的左值参数和右值参数名 左值参数通常为对象引用,右值参数为临时值或值传递。 #### 1.27 避免局部名和外层的名字冲突 局部变量和外部变量不应重名,以避免命名冲突。 #### 1.28 用a、an、any区分重名(参数) 通过前缀`a_`、`an_`或`any_`来区分具有相同名称的参数。 #### 1.29 模板类型名应有意义 模板类型名应清晰反映其用途,如`TKey`用于键值对。 ### 第2章 类型的使用 #### 2.1 避免隐式声明类型 明确指定变量类型,避免使用`auto`导致的类型推断不清。 #### 2.2 慎用无符号类型 除非确实需要表示非负数,否则应避免使用无符号类型,以防溢出问题。 #### 2.3 少用浮点数除非必须 浮点运算存在精度损失,应尽量使用整数或固定精度类型。 #### 2.4 用typedef简化程序中的复杂语法 使用`typedef`为复杂类型创建别名,提高代码可读性。 #### 2.5 少用union `union`可能导致未预期的行为,应谨慎使用,尤其是当共享内存区域的访问控制不当时。 #### 2.6 慎用位操作 位操作应仅在性能优化或硬件交互时使用,避免滥用导致代码难以理解。 #### 2.7 用enum取代(一组相关的)常量 使用`enum`或`enum class`来定义一组相关常量,提高代码的可读性和安全性。 #### 2.8 使用内置bool类型 使用`bool`类型而非`int`或其他类型来表示布尔值,增强语义清晰性。 #### 2.9 (尽量)用引用取代指针 引用提供了类似指针的功能,但使用更安全,不易出错。 以上章节详细阐述了C++编程中命名和类型使用的规范,后续章节将继续探讨函数设计、类设计、继承机制以及内存管理等方面的关键知识点,为开发者提供全面的指导。遵循这些规范不仅能够提升代码的质量,还能促进团队协作,减少后期维护成本,是每位C++开发者都应掌握的重要技能。
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助