google c++ style

本文详细介绍了C++编程中的文件命名规范、局部变量初始化、类复制与赋值限制、命名规则、命名空间、枚举命名、宏命名、代码长度限制及逻辑换行等核心内容,旨在提供一套清晰、易于理解的编程风格指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 头文件命名规范

#ifndef <project>_<path>_<file>_H_

#define <project>_<path>_<file>_H_

#endif <project>_<path>_<file>_H_

例子:

#ifndef FOO_BAR_BAZ_H_
#define FOO_BAR_BAZ_H_
...


#endif  // FOO_BAR_BAZ_H_
说明 文件src/bar/baz.h文件在项目FOO中


2.  尽量声明完局部变量给其初值

int i ;

i = g();  // Bad

int i  = g(); // good

vector<int> v;

v.push_back(1);

        v.push_back(2); // prefer --

       vector<int> v = {1,2} ; // good --


3. 如果一个类中需要复制或赋值功能,尽可能提示类似CopyFrom()或Clone()等成员函数,而禁掉复制构造函数与赋值重载=函数,因为这样能避免隐式转换,

如果想禁掉复制或赋值能函数,只需要在private里声明,但是不实现,这样别人调用时就会提示link error,方法如下

#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
  TypeName(const TypeName&);               \
  void operator=(const TypeName&)

       Then, in class Foo:


class Foo {
  public:
  Foo(int f);
  ~Foo();

private:
  DISALLOW_COPY_AND_ASSIGN(Foo);
};


4. 命名规则

  4.1 文件命名

文件名应该全部小定,可以包括下划线("_")和连接符(“-”)

              Examples of acceptable file names:


my_useful_class.cc
my-useful-class.cc
myusefulclass.cc
myusefulclass_test.cc

内联功能必须在.h里面,如果你的内联代码非常短,直接在.h里给出实现

  4.2 类型命名

类型应该以大写字母开始,每一个新的单词都应该以大写开头,不要有下划线,classes, structs, typedefs, and enums都使用这一规则

       // classes and structs
class UrlTable { ...
class UrlTableTester { ...
struct UrlTableProperties { ...


      // typedefs
typedef hash_map<UrlTableProperties *, string> PropertiesMap;


      // enums
enum UrlTableErrors { ...

4.3 变量命名

变量命名全是小写,可以随便有下划线(“_”),如果是类的成员变量带上m_,如果是全局变量使用g_开头

            For example:
string table_name;  // OK - uses underscore.
string tablename;   // OK - all lowercase.
string tableName;   // Bad - mixed case.

4.4 常量命名

不管是什么常量变量,统一使用k开头

const int kDays = 365;

4.5 函数命名

常规的函数应该以一个大写字母开头,中间不能有下划线

例如:

 AddTableEntry()

DeleteUrl()

set与get类型的函数,他们以变量命名规则

例如:

void setnum(int num); or void set_num(int num);

int getnum(int num); or    int  get_num(int num);

4.6 命名空间(namespace)

所有字母小写,可以依据项目名 路径名 类名结合来命名,自由发挥

4.7 枚举命名

简单点说,枚举全大写,并且可以有下划线

例如:

ENUM_NAME

4.8 宏命名(macro)

与枚举一样

例如:

#define ROUND(x) ...
#define PI_ROUNDED 3.0

4.9 每行代码长度不要超过80

4.10 对于要表达式要换行显示,逻辑符号永远在上一行末尾

例如:

if( aaaaaaaaaaaa == 10 &&

    bbbbbbbbbbbb == 11 &&

   cccccccccccccc == 12 )

{

}


以上来源于http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

本人只是简单的翻译了一些自己想记录的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值