1. 文件命名
全部小写,用_区分 my_useful_class.cc
通常应尽量让文件名更加明确. http_server_logs.h 就比 logs.h 要好
内联函数必须放在 .h 文件中. 如果内联函数比较短, 就直接放在 .h 中.
2. 类型命名
类型名称的每个单词首字母均大写, 不包含下划线: MyExcitingClass, MyExcitingEnum.
1 class UrlTableTester { ...
2 typedef hash_map<UrlTableProperties *, string> PropertiesMap;
3 enum UrlTableErrors { ...
3. 变量命名
变量名一律小写, 单词之间用下划线连接. 类的成员变量以下划线结尾, 但结构体的就不用,
1 string table_name; // 可 - 用下划线。
2
3 class TableInfo {
4 private:
5 string table_name_; // 可 - 尾后加下划线。
6 string tablename_; // 可。
7 static Pool<TableInfo>* pool_; // 可。
8 };
9
10 struct UrlTableProperties {
11 string name;
12 int num_entries;
13 }
对全局变量没有特别要求, 少用就好
4. 常量命名
const int kDaysInAWeek = 7; 前缀+k
5. 函数命名
常规函数使用大小写混合, 取值和设值函数则要求与变量名匹配:
1 AddTableEntry()
2
3 class MyClass {
4 public:
5 int num_entries() const { return num_entries_; }
6 void set_num_entries(int num_entries) { num_entries_ = num_entries; }
7 private:
8 int num_entries_;
9 };
6. 命名空间命名
名字空间用小写字母命名, 并基于项目名称和目录结构: google_awesome_project.
7. 枚举命名
1 enum AlternateUrlTableErrors {
2 OK = 0,
3 OUT_OF_MEMORY = 1,
4 MALFORMED_INPUT = 2,
5 };
8. 宏命名
#define PI_ROUNDED 3.0