缩进
采用四个空格,不要TAB
大括号
函数内部控制语句左大括号不换行
void testFunc(int x)
{
if (x > 2) {
return;
}
}
变量/成员变量
小驼峰,类成员变量(静态和非静态)在后面加上下划线,结构体成员变量不需要下划线
int totalMoney;
class MyClass
{
int totalMoney_;
};
全局变量
g_+变量名
int g_myObj = 8;
静态变量
s_+变量名
int s_myObj = 8;
控制语句
判断指针是否为空时,使用if (p) {...},而不是if (p != nullptr) {...}
方法名
小驼峰,左大括号换行
void doLogin()
{
}
在返回类型和参数类型中,*和&紧贴类型名
int* getPointer(int* Arg)
{
}
int& getObject(int& Arg)
{
}
类名/命名空间/结构体
类和结构体大驼峰,命名空间全部小写
一律左大括号换行
class MyClass
{
};
namespace myspace
{
}
struct FileInfo
{
};
成员声明顺序
按照public protected private的顺序声明成员
按照类型 方法 数据成员的顺序声明成员
getter/setter
当成员变量需要暴露时,声明为private,然后使用getter/setter来访问,而不是public或者protected。成员变量只有内部使用,但是依赖过多时,也可以添加getter/setter来访问。
常量
小写字母k开头,后面大驼峰,成员常量也是如此
static const int kDaysInWeek = 7;
枚举
枚举名大驼峰,枚举成员使用常量风格
enum FileOpenMode {
kReadOnly,
kWriteOnly,
kReadWrite
};
宏命名
全字母大写加'_'分隔
#define OS_UNIX
#define OS_LINUX
#define OS_WINNT
头文件保护
使用#pragma once代替头文件保护,它更加简单
#pragma once
//#ifndef FILENAME_H_
//#define FILENAME_H_
...
//#endif
常用动词
init/uninit
add / remove
begin / end
create / destroy
insert / delete
first / last
get / release
increment / decrement
put / get
add / delete
lock / unlock
open / close
min / max
old / new
start / stop
next / previous
source / target
show / hide
send / receive
source / destination
cut / paste
up / down