10.5 命名规范¶
简介¶
为了保持多个项目风格统一,最好遵循一致的命名规范,但并不强求。
文件命名¶
文件名要全部小写,可以包含下划线_或者连字符-,C++文件最好以.cc结尾,头文件以.h结尾,专门插入文本的文件以.inc结尾。
my_default_class.cc
my-useful-class.cc
myusefulclass.cc
myusefulclass_test.cc // 测试文件以_test结尾
类型命名¶
类型名称的每个单词首字母均大写,不包含下划线:
// 类和结构体
class UrlTable {};
class UrlTableTester{};
struct UrlTableProperties{};
// 类型定义
typedef hash_map<UrlTableProperties *, string> PropertiesMap;
// using别名
using PropertiesMap = hash_map<UrlTableProperties *, string>;
// 枚举
enum UrlTableErrors {};
变量命名¶
变量(包括函数参数)和数据成员名一律小写,单词之间用下划线链接,类的成员变量以下划线结尾,但结构体的不用。
// 普通变量
string table_name;
// 类数据成员
class TableInfo {
private:
string table_name_;
static Pool<TableInfo*> pool_;
};
// 结构体变量
struct UrlTableProperties {
string name;
int num_entries;
static Pool<UrlTableProperties>* pool;
};
函数命名¶
常规函数使用大小写混合,取值和设值函数则要求与变量名匹配:
MyExcitingFunction()
MyExcitingMethod()
my_exciting_member_variable()
set_my_exciting_member_variable()
命名空间命名¶
命名空间以小写字母命名。
枚举命名¶
枚举的命名应当与常量或宏一致(推荐使用常量风格):
// 常量风格
enum UrlTableErrors {
kOK = 0,
kErrorOutOfMemory,
kErrorMalformedInput,
};
// 宏风格
enum AlternateUrlTableErrors {
OK = 0,
OUT_OF_MEMORY = 1,
MALFORMED_INPUT = 2,
};