一、命名规范
命名风格直接确定的命名实体是:类型、变量、函数、常量、宏等等。
函数命名、变量命名、文件名命名具有描述性,不能过度缩写;类型和变量名一般是名词;函数名一般是指令性的,访问函数需要描述的更细致, 要与其访问的变量相吻合。
函数名一般是指令性的,如OpenFile()、set_num_errors(),访问函数需要描述的更细致, 要与其访问的变量相吻合。
1、文件命名
文件名全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。
C++文件以.cc结尾,头文件以.h结尾。且不要用已经存在于/usr/include
下的文件名。
通常,尽量让文件名更加明确,定义类时文件名一 般成对出现,如 foo_bar.h
和 foo_bar.cc
,对应类 FooBar
。
把类的定义,放在.h文件中,类的实现放在专门的cpp中,内联函数必须放在.h 文件中。
2、类命名
类命名采用驼峰式,每个单词首字母大写,不含下划线,以名词形式。
这一命名规则适用于类、结构体、类型定义(typedef)、枚举;
class MyClass{
//...
};
struct TreeNode{
//...
};
typedef vector<vector<int>> Mat;
enum UrlTableErrors{
//...
};
3、变量命名
变量名一律小写,单词间以下划线相连,结构体成员变量同里:
string table_name;
struct Member{
int member_id;
};
类的成员变量以下划线结尾:
class Player{
string player_name_;
int player_id_;
}
全局变量可以以 g_为前缀。
int g_sum;
4、常量命名
驼峰式,以大写字母开头的单词,在名称前加k:
const int kDaysInAWeek = 7;
5、函数命名
普通函数:
驼峰式,以大写字母开头,每个单词首字母大写,使用命令式语气,没有下划线:
void AddTableEntry()
void DeleteUrl()
bool OpenFile()
int CheckFileName()
存取函数或短小的内联函数:
与存取的变量名匹配,使用小写加下划线,且与访问变量相吻合:
class MyClass{
public:
...
int num_entries() const { return num_entries_; }
void set_num_entries( int num_entries) { num_entries_ = num_entries; }
private:
int num_entries_;
};
6、命名空间
命名空间的名称是全小写的,其命名基于项目名称和目录结构:
google_awesome_project
7、枚举命名
枚举类型大小写混合;枚举值应全部大写,单词间以下划线相连:
enum UrlTableErrors {
OK = 0,
ERROR_OUT_OF_MEMORY,
ERROR_MALFORMED_INPUT
};
8、宏命名
通常情况下宏不应被使用。命名像枚举命名一样全部大写 、 使用下划线:
#define PI_ROUNDED 3.0