跳转至

C++ 笔记 | Google C++ 风格指南学习 命名约定

摘自:Google开源项目风格 | C++风格指南 7.命名约定

选择分类的时候参考了CSDN | 关于博客中转载和原创的文章 by JeffreyLau7

整理时间:200414

注:只整理了作为一个C++初学者能看懂的部分

7.命名约定

7.1 通用命名规则

使用描述性的命名,让代码易于新读者理解

不要使用含糊不清的缩写

一些特定的广为人知的缩写是允许的, 例如用i表示迭代变量和用T表示模板参数

模板参数的命名应当遵循对应的分类: 类型模板参数应当遵循类型命名的规则, 而非类型模板应当遵循变量命名的规则

7.2 文件命名

文件名要全部小写, 可以包含下划线_, 如my_useful_class.cc

C++ 文件要以.cc结尾, 头文件以.h结尾. 专门插入文本的文件则以.inc结尾

不要使用已经存在于/usr/include下的文件名 (即编译器搜索系统头文件的路径), 如db.h

通常应尽量让文件名更加明确

定义类时文件名一般成对出现

内联函数必须放在.h文件中. 如果内联函数比较短, 就直接放在.h

7.3 类型命名

所有类型命名——类, 结构体, 类型定义 (typedef), 枚举, 类型模板参数——均使用相同约定, 即以大写字母开始, 每个单词首字母均大写, 不包含下划线.

MyExcitingClass MyExcitingEnum

7.4 变量命名

变量 (包括函数参数)、数据成员名、结构体成员变量名一律小写, 单词之间用下划线连接.

a_local_variable a_struct_data_member

类的成员变量以下划线结尾 如a_class_data_member_

译者(acgtyrant):

感觉 Google 的命名约定很高明, 比如写了简单的类QueryResult, 接着又可以直接定义一个变量query_result, 区分度很好;

再次, 类内变量以下划线结尾, 那么就可以直接传入同名的形参, 比如TextQuery::TextQuery(std::string word) : word_(word) {}, 其中word_自然是类内私有成员.

7.5 常量命名

声明为constexprconst的变量, 或在程序运行期间其值始终保持不变的, 命名时以k开头, 大小写混合

const int kDaysInAWeek = 7;

所有具有静态存储类型的变量 (例如静态变量或全局变量) 都应当以此方式命名

7.6 函数命名

常规函数使用大小写混合, 我选择MyExcitingFunction() MyExcitingMethod() AddTableEntry() DeleteUrl()

对于首字母缩写的单词, 更倾向于将它们视作一个单词进行首字母大写

例如, 写作 StartRpc() 而非 StartRPC()

取值和设值函数的命名与变量一致. 一般来说它们的名称与实际的成员变量对应. 例如 int count()void set_count(int count)

7.8 枚举命名

新代码应该尽可能优先使用常量风格

枚举的命名应当和常量一致, 如 kEnumName

如:

C++
1
2
3
4
5
enum UrlTableErrors {
  kOK = 0,
  kErrorOutOfMemory,
  kErrorMalformedInput,
};

7.9 宏命名

不推荐使用宏, 一定要用, 像这样命名: MY_MACRO_THAT_SCARES_SMALL_CHILDREN