Google 编码风格之命名规范(备忘)

参考链接:http://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/naming/


通用规则:所有函数、变量、类与文件命名尽量不要使用缩写,以方便理解。除了不容易引起歧义的,如DNS等。


特殊规则:

1) 类的命名单词首字母使用大写且不能包含下划线;


函数命名类似,但是采用驼峰写法,首字母小写,后续的单词大写,中间不能有下划线,但如果您的某函数出错时就要直接 crash, 那么就在函数名加上 OrDie. 但对于取值和设值函数例外:


取值(Accessors)和设值(Mutators)函数要与存取的变量名匹配. 这儿摘录一个类, num_entries_ 是该类的实例变量:


class MyClass {
    public:
        ...
        int num_entries() const { return num_entries_; }
        void set_num_entries(int num_entries) { num_entries_ = num_entries; }


    private:
        int num_entries_;
};


2)所有变量命名都只能使用小写,单词与单词之间使用下划线间隔。类成员变量使用下划线结尾,函数的局部变量则不用下划线结尾;对于全局变量,在开头加上"g_",后续与前同;在Java当中,包package的命名需要使用小写字母。


3) 常量使用全部大写,而且单词与单词之间使用下划线隔开;


4) 非静态方法(实例方法)内调用另一个实例方法时,不需要画蛇添足地加this。但在以下的情况,需要显式写出this:

1)当在一个构造器中需要调用另一个构造器时,必须用到this的时候,需要添加this。

2) 需要return this的时候,则会在实例方法中显式地写出this。

3)需要初始化类成员的时候,需要显式写出this。


5) 初始化数组的时候,指定赋值数组时,记得在最后一个元素后加一个逗号",",原因是为了维护长数组。

如: 

int[] array_ = new int[]{1,
                         2,
                         3,};

6) finialize()方法中,应该总是假设基类版本的finialize()也在做某些重要的事情,所以要用super来调用基类的finialize()函数。但需要添加异常处理来添加这个句子。

protected void finalize(){
  if(!check_out){
    System.out.println("Error");
   }
   super.finalize(); // you should add exception statement
}

7) 定义基类/ 抽象基类/ 接口的时候,为将来继承类/ 实现类/ 实现接口可能会抛出的异常占坑:


可以声明方法将抛出异常却不抛出的做法是允许的。这就涉及到一种良好的抽象基类/ 接口的编写方法:

为将来的派生类/ 实现接口能抛出这些已经在抽象基类/ 接口声明的异常,就在抽象基类/ 接口声明处加上异常抛出声明。


8/ 通常将一个类的数据成员设置为private,通过方法来引导客户端程序员访问数据成员。而且,基类和子类的数据成员的名字不宜相同。不然容易产生混淆。


9/ 我们一般规定:编写构造器时,避免调用其它的方法。如果调用,也只能调用private和final的方法。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值