无规矩不成方圆,新的岗位就需要服从团队的编码规则。很开心团队用的是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)

[转]程序开发基础学习二(C++ Google Style 命名规则)的更多相关文章

  1. .net程序开发人员必看的变量的命名规则

    (1)类名.属性名.方法名采用Pascal命名,如 class User { } interface IEditable { } bool ValidateInput() public int Age ...

  2. 微信小程序开发基础

    前言: 微信小程序开入入门,如果你有html+css+javascript的基础,那么你就很快地上手掌握的.下面提供微信小程序官方地址:https://developers.weixin.qq.com ...

  3. Python入门基础学习 二

    Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...

  4. 微信小程序开发:学习笔记[2]——WXML模板

    微信小程序开发:学习笔记[2]——WXML模板 快速开始 介绍 WXML 全称是 WeiXin Markup Language,是小程序框架设计的一套标签语言,结合小程序的基础组件.事件系统,可以构建 ...

  5. 微信小程序开发:学习笔记[1]——Hello World

    微信小程序开发:学习笔记[1]——Hello World 快速开始 1.前往微信公众平台下载微信开发者工具. 地址:https://mp.weixin.qq.com/debug/wxadoc/dev/ ...

  6. 小程序开发基础-swiper 滑块视图容器

    小编 / 达叔小生 参考官方文档:https://developers.weixin.qq.com/miniprogram/dev/component/ 小程序开发基础-swiper 滑块视图容器 根 ...

  7. 小程序开发基础-scroll-view 可滚动视图区域

    小编 / 达叔小生 小程序开发基础-scroll-view 可滚动视图区域 这里只展示纵向滚动,横向同理就不用说明了,可自己尝试,横向滚动属性为scroll-x,把纵向滚动改为横向滚动即可. scro ...

  8. 微信小程序开发:学习笔记[7]——理解小程序的宿主环境

    微信小程序开发:学习笔记[7]——理解小程序的宿主环境 渲染层与逻辑层 小程序的运行环境分成渲染层和逻辑层. 程序构造器

  9. 微信小程序开发:学习笔记[5]——JavaScript脚本

    微信小程序开发:学习笔记[5]——JavaScript脚本 快速开始 介绍 小程序的主要开发语言是 JavaScript ,开发者使用 JavaScript 来开发业务逻辑以及调用小程序的 API 来 ...

随机推荐

  1. 【转】Spring事务超时时间可能存在的错误认识

    1.先看代码 1.1.spring-config.xml <bean id="dataSource" class="org.springframework.jdbc ...

  2. delphi学习treeview中从表列名和数据添加为目录并双击自动选中

    1 unit Unit2; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Syst ...

  3. MVC3+EF4.1学习系列(九)-----EF4.1其他的一些技巧的使用

    上节通过一系列重构 简单的项目就实现了 不过还有些EF的功能没有讲 这节就通过项目 讲讲EF其他的功能与技巧 一.直接执行SQL语句 通常来讲 EF 不用写SQL语句的  但是 在有些场合  比如对生 ...

  4. LightOJ 1337 F - The Crystal Maze (bfs)

    Description You are in a plane and you are about to be dropped with a parasuit in a crystal maze. As ...

  5. Arch最小化安装X

    Xorg xorg-server 安装xorg-server pacman -S xorg-server 可选:xorg-server-utils pacman -S xorg-server-util ...

  6. 高精度运算专题1-加法运算(The addition operation)

    这个专题呢,我就来讲讲高精度的加法,下面是一个计算加法的函数(用数组a加上数组b结果存到数组c里面). 思路:先测一下数组a和数组b的长度,分别放到a[0].b[0]里面去,再从第二位开始相加,记得满 ...

  7. Openjudge-计算概论(A)-鸡尾酒疗法

    描述: 鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HAART),由美籍华裔科学家何大一于1996年提出,是通过三种或三种以上的抗病毒药物联合使用来治疗艾 滋病.该疗法的应用可以减少单一用药产生的抗药性 ...

  8. redis的常用命令

    键值得相关命令: keys * 返回满足给定patternd的所有key exists 确认一个key是否存在 del 删除一个key expire 设置一个key的过期时间 ttl 查看过期时间还有 ...

  9. tableview 代理方法详解

    typedef NS_ENUM(NSInteger, UITableViewCellAccessoryType) { UITableViewCellAccessoryNone, // 不显示任何图标 ...

  10. Tsung记录

    1.提高Tsung登录用户数 ulimit -n (65530)修改系统最大连接数,Tsung压力机和服务器都需要更改