google风格代码

来源:互联网 发布:java获取本地ip地址 编辑:程序博客网 时间:2024/05/22 02:18

必须了解:
1.cc必须伴随.h文件
2.任何头文件必须有#define<项目>_<路径>_<文件>_H_以防止重复引用
3.内联函数必须10行以下
4.复杂内联函数定义在-inl.h 文件
5.函数参数定义顺序:先输入参数,后输出参数
6.引用头文件顺序:c库,c++库,其他三方库,自己头文件
7.命名空间问题:能在.cc文件中使用未命名空间,不允许在.h文件使用未命名空间
命名空间不使其中代码开头产生空格,不得在文件中直接使用using namespace语句。但是可以
在.h函数中定义别名
8.内联类尽可能不对外public
9.尽可能使用未命名空间(在.cc文件中)或静态函数而不是全局函数
10.局部变量尽可能快初始化。
11.禁止使用静态类和全局类
12.类构造:尽量将无关重要的事情在类构造函数实现,重要的初始化在Init()函数
实现,Init()可返回状态表明初始化状态是否成功
13.没有任何其他构造函数时,必须自定义默认构造函数。
14.构造函数变量为1个时候必须加上Explicit防止隐式转换
15.不需要默认拷贝构造函数时,类定义末尾DISALLOW_COPY_AND_ASSIGN 宏
16.只有在只包含数据的时候使用struct,否则使用类。
17.继承使用public继承,包含基类对象作为成员变量取代private继承。有必要时析构函数定义为virtual,并且以后子类都应该加上virtual关键字。
18.多继承尽量少用,多继承应该只有一个父类为实现的,其他为带有Interface后缀的类(接口)
19.纯虚函数类名应该加上Interface后缀
20.尽可能不重载运算符。
21.数据成员定义为private,使用变量foo(),set_foo()得到或改变变量。
22.类中各种成员定义顺序:
public,protected,private.
三种中各种变量定义顺序:typdef与enum,const,构造,析构,成员方法函数,数据成员变量,最后在private 段加上DISALLOW_COPY_AND_ASSIGN
每种不同种变量间空行
23.智能指针:scoped_ptr最好,shared_ptr特殊使用,auto_ptr禁止
24. 引用传递参数必须加上const,不允许改变引用传递的变量值。
25.函数重载尽可能不要搞的像默认构造函数
26.不允许使用默认参数列表
27.不允许使用参数定义长度的数组
28.允许使用友元
29.不使用c++异常
30.不使用运行时类信息
31.使用static_cast<>(). 替代c的强制转换形式
32.使用printf,scanf.不使用c++的cin,cou <<>>流
33.使用前缀++i而非i++
34.最好不用unsigned int
35.最好不使用宏定义,使用内联函数,enum变量和const变量替代宏。
一定用时:不要定义在.h文件中
36.0代表int,0.0代表实数,NULL代表空指针, '/0'代表结束字符
37.使用sizeof(变量名)代替sizeof(变量类型)
38.命名规则:
文件名:全部小写,字母中间可以加-或_
类型名:不加下划线,首字母大写
变量名:全部小写,中间可以加下划线
全局变量:尽可能少用,用时加上前缀g_
const变量:变量前面加上小写k其他首字母大写,中间不加下划线
函数名:可以类型名,也可以变量名写法
命名空间名:全部小写,中间下划线,最好有文件目录信息
enum变量名:const变量写法或者全部大写,字母中间下划线_
39.注释:
文件注释:每个文件都应该包含三行:1。copyright,2.licence,3.作者,然后加上文件描述信息,不要在.cc与.h文件重复注释
类注释:类定义时注释加上类作用以及用法
函数注释,变量注释:定义时注释说明作用
复杂代码加上注释
40.为临时解决,等待改进代码加上todo注释。
41.每行最多80字母,少用非asci码字符,必须为UTF_8
42.使用两个空格替代/t
43.函数定义时,参数列表要么位于同一行,要么参数类型名多行对齐
Function Declarations and Definitions具体多看
44.括号内最好不要有空格if,else同时有时应该都有花括号。
45.switch,case代码书写规范:Loops and Switch Statements
46.指针引用跟随变量名,中间不要空格。
47.多个条件多行时,每行&&结尾。
48.变量,数组初始化时,用=或().int x(3);int x=3;
49.预处理应该比正常代码靠前.

50.从Namespace Formatting起,各种空格书写注意。
这个很多东西。自己看。

51.不使用预编译。


例外:
1.其他人的代码。修改时处理方式。
2.windows的代码

原创粉丝点击