无规矩不成方圆,新的岗位就需要服从团队的编码规则。很开心团队用的是Google的C++编码规则,大概看了下Google 的编码规则,正如九天翔雁说的:“Google的 C++ Style Guide远不仅是一个传统意义上的代码书写风格指导,对于C++的方方面面做出了Google的解释和使用建议,包括每个规则给出时,较为详细的讲了这个规则好的一面和不好的一面,最最激进的规则甚至有禁用C++的异常,以及除了Google规范的Interface作为基类外,禁用多重继承,在绝大部分情况下禁用默认参数等内容。在很大程度上,Google是想把C++打造成效率高的JAVA来使用~~~~”。中文版的Google C++ Style Guide有五万字之多,今天总结一下最常用的命名规则。

1、文件命名规则

由于在写程序的时候首先要建立一个文件,好的文件名命名可以很清晰的看出这个文件将要承载的内容,Google给出的规则为:”文件名要全部小写, 可以包含下划线 (_) 或连字符 (-). 按项目约定来,例如:cmd_save_player_info“

我自己喜欢下划线方式的命名规则,同时大家在命名的时候要防止和标准库里的函数名冲突。

2、类命名规则

类是用户自定义的数据类型,Google给出的规则为:“类型名称的每个单词首字母均大写, 不包含下划线: ModPlayerManager”

对于所有类型命名--类、结构体、枚举、类型定义(typedef),均使用相同约定。

3、变量命名规则

Google给出的规则为:“变量名一律小写, 单词之间用下划线连接. 类的成员变量以下划线结尾, 如:player_id”

比较特殊的是成员变量后面跟下划线,例如:player_name_。全局变量前加g_,例如g_system_time。

4、常量命名规则

对于常量,Google给出的规则为:“ k 后接大写字母开头的单词,例如:kPlayerName”

5、函数命名规则

对于函数,Google给出的规则为:“常规函数使用大小写混合, 取值和设值函数则要求与变量名匹配”

常规函数的话单词开头大写,例如:CheckPlayerCookie()。

成员变量设置和获取函数有点特殊,看下面代码:

  1. class Player
  2. {
  3. public:
  4. void set_player_id(const int player_id){return player_id_ = player_id;}
  5. int get_player_id() const{return player_id_;}
  6. private:
  7. int player_id_;
  8. };

6、名字空间命名规则

对于名字空间,Google给出的规则为:“名字空间用小写字母命名, 并基于项目名称和目录结构: google_awesome_project.”

7、枚举命名规则

对于枚举,Google给出的规则为:“枚举的命名应当和 常量 或  一致: kEnumName 或是 ENUM_NAME.”

8、宏变量命名规则

对于宏变量,Google给出的规则为:“你并不打算 使用宏, 对吧? 如果你一定要用, 像这样命名: MY_MACRO_THAT_SCARES_SMALL_CHILDREN.”

命名规则常用的就这些,当然了我还没有正真实践过这种命名规则,相对于以前用的匈牙利命名法,看不出来优点在那里。但既然Google这样做应给有他们的道理,不管喜欢那种风格,和团队保持统一就是好的风格。

参考文章:1、Google C++风格指南-中文版

     2、Google C++ Style中允许使用的Boost库(1)

最新文章

  1. runv nslistener源码分析
  2. js 实现类似php函数number_format的功能
  3. JS 获取元素当前的样式信息
  4. PHP中的null合并运算符
  5. WCF入门(9)
  6. springmvc下上传文件
  7. 在UWSGI和NGINX配合的情况下,配置个别目录上传及超时
  8. java学习笔记day06---匿名内部类
  9. android使用友盟第三方自动更新/手动更新
  10. python手记(41)
  11. 01_Linux学习_基础知识
  12. SOCKET.IO 的用法 系统API,
  13. 面试的角度诠释Java工程师(一)
  14. YAML配置文件
  15. Django介绍(3)
  16. 当面试官问你sql优化的时候。。。
  17. Makefile:如何写目标依赖
  18. idea 新建 maven项目遇到的一些问题
  19. 万里长征第二步——django个人博客(第三步 —— 设置一些全局变量)
  20. luogu4238 【模板】多项式求逆

热门文章

  1. osg + cuda
  2. digitalocean优惠码30美元1G内存VPS免费使用两个月
  3. 七牛 在线管理 v0.1
  4. NOIP2002-普及组复赛-第三题-选数
  5. java中的Volatile 变量
  6. discuz论坛小记
  7. .h 与 .hpp 文件
  8. iis本地无法通过ip地址访问网站
  9. MS13-069(CVE-2013-3205) CCaret use-after-free Vulnerability Analysis (2014.9)
  10. ACM心路