ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

google代码规范

2021-09-12 10:33:17  阅读:121  来源: 互联网

标签:google 函数 继承 代码 使用 定义 规范 基类 构造函数


1. 构造函数的职责
构造函数中只进行那些没有实际意义的初始化,如果对象需要有意义的初始化,考虑使用另外的Init()方法并(或)增加一个成员标
记用于指示对象是否已经初始化成功。
2. 默认构造函数
如果一个类定义了若干成员变量又没有其他构造函数,需要定义一个默认构造函数(没有参数),否则编译器将自动生成默认构造函数。
3. 明确的构造函数
对单参数构造函数使用 C++关键字 explicit。
只有一个参数的构造函数可被用于转换(隐式转换生成一个新的对象),为避免构造函数被调用造成隐式转换,可以将其声明
为explicit。

4.结构体和类

仅当只有数据时使用struct,其它一概使用class。
5.继承 
使用组合通常比使用继承更适宜,如果使用继承的话,只使用公共继承。
实现继承通过原封不动的重用基类代码减少了代码量,接口继承可用于程序上增强类的特定API的功能。
限定仅在子类访问的成员函数为protected,需要注意的是数据成员应始终为私有。
当重定义派生的虚函数时,在派生类中明确声明其为virtual。根本原因:如果遗漏virtual,阅读者需要检索类的所有祖先以确定该函数是否为虚函数。
6.多重继承
只有当最多一个基类中含有实现,其他基类都是以Interface为后缀的纯接口类时才会使用多重继承。
多重继承允许子类拥有多个基类,要将作为纯接口的基类和具有实现的基类区别开来。
7.接口
纯接口:
1) 只有纯虚函数("=0")和静态函数(下文提到的析构函数除外);
2) 没有非静态数据成员;
3) 没有定义任何构造函数。如果有,也不含参数,并且为protected;
4) 如果是子类,也只能继承满足上述条件并以Interface为后缀的类。
8. 操作符重载
一般不要重载操作符,尤其是赋值操作(operator=)比较阴险,应避免重载。如果需要的话,可以定义类似Equals()、CopyFrom()等函数。
9.存取控制
将数据成员私有化,并提供相关存取函数,如定义变量foo_及取值函数 foo()、赋值函数set_foo()。
存取函数的定义一般内联在头文件中。
10.声明次序
定义次序如下: 
public:
protected:
private:
11.编写短小函数
函数尽量短小、简单,便于他人阅读和修改代码。
如果函数超过40行,可以考虑在不影响程序结构的情况下将其分割一下

标签:google,函数,继承,代码,使用,定义,规范,基类,构造函数
来源: https://www.cnblogs.com/tuyibo/p/15257507.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有