C&C++设计风格选择 命名规范

2020-01-06 18:26:46丽君

1.6.类成员变量和全局变量命名


/*
** 类成员变量和全局变量的命名风格和局部变量的命名风格
** 并没有更多的区别。唯一的问题是,是否要加前缀或后缀
** 以方便和局部变量区分开来。
*/
class UserInfo {
 ...
private:
 std::string user_name_; /* Google style */
 std::string m_userName; /* Hungarian notation */
 /* 不推荐前缀'_'的风格,可能会和标准库命名冲突 */
};

/* 全局变量要少用,推荐加前缀用于区分 */
extern "C" long g_commonCount;

tip.1:在有IDE提示时,前缀"m_"的类成员变量能够很快被找到,如果不喜欢这种风格,"this->"同样也很便利;

1.7.常量和枚举值命名


/*
** 常量和枚举值的命名风格建议和局部变量的命名风格区分开,
** 常见的有全字母大写加'_'的风格,PascalCase风格,以及
** Google加'k'前缀的风格。
*/
static const int DAYS_IN_WEEK = 7;
static const int kDaysInWeek = 7;

enum FileOpenMode {
 ReadOnly, WriteOnly, ReadWrite
};

enum FileOpenMode {
 READ_ONLY, WRITE_ONLY, READ_WRITE
};

tip.1:如果可以使用c++11特性,推荐enum class,否则可以在有歧义的枚举值中重复枚举类型的名字;

1.8.宏命名


/* 宏命名推荐使用全字母大写加'_'分隔的风格 */
#define OS_UNIX
#define OS_LINUX
#define OS_WINNT

/* 除非你想用条件编译将某些功能变为可选项 */
#ifdef USE_TCMALLOC
#define my_malloc tcmalloc
#else
#define my_malloc malloc
#endif

tip.1:能用常量替代宏的地方尽量使用常量吧;


注:相关教程知识阅读请移步到C++教程频道。