存档在 2012年4月

Google C++规范学习笔记

2012年4月24日
1、对单参数构造函数使用C++关键字explicit    explicit Foo(string name);
2、仅在代码中需要拷贝一个类对象的时候使用拷贝构造函数;不需要拷贝时应使用
DISALLOW_COPY_AND_ASSIGN。应在类的private:中使用,作为类的最后部分。
3、使用static_cast<>()等C++的类型转换,不要使用int y = (int)x 或int y = int(x);
4、dynamic_cast:除测试外不要使用,除单元测试外,如果你需要在运行时确定类型信
息,说明设计有缺陷

5、不要使用流,除非是日志接口需要,使用printf 之类的代替。

6、我们强烈建议你在任何可以使用的情况下都要使用const。
7、尽可能用sizeof(varname)代替sizeof(type)。
8、变量名一律小写,单词间以下划线相连,类的成员变量以下划线结尾

9、变量(含类、结构体成员变量)、文件、命名空间、存取函数等使用全部小写+下划线,
类成员变量以下划线结尾,全局变量以g_开头;
10、普通函数、类型(含类与结构体、枚举类型)、常量等使用大小写混合,不含下划线;
11、只使用空格,每次缩进2 个空格。使用空格进行缩进,不要在代码中使用tabs,设定编辑器将tab 转为空格。
12、头文件顺序:本cpp对应文件、C 系统文件、C++系统文件、其他库头文件、本项目内头文件
13、不能在.h 文件中使用不具名命名空间。
14、结论:不要将嵌套类定义为public,除非它们是接口的一部分,比如,某个方法使用了这
个类的一系列选项。
15、使用Init()方法集中初始化为 有意义的(non-trivial) 数据
16、所以按引用传递的参数必须加上const。