1. 每一行代码字符数不超过80。
2. 只使用空格,不使用Tab,每次缩进2个空格。
3. 返回类型和函数名在同一行,参数也尽量放在同一行。
函数看上去像这样:
ReturnType ClassName::FunctionName(Type par_name1, Type par_name2) {
DoSomething();
...
}
如果同一行文本太多,放不下所有参数:
ReturnType ClassName::ReallyLongFunction(Type par_name1,
Type par_name2,
Type par_name3) {
DoSomething();
...
}
4. 布尔表达式中逻辑操作符总是位于行尾。
if (this_one_thing > this_other_thing &&
a_third_thing == a_four_thing &&
yet_another & last_one) {
...
}
5. 预处理指令不要缩进,从行首开始。
6. 编写类时,访问控制块的声明次序依次是public, protected, private,均缩进一个空格。这些关键字后面不要保留空行。
7. 构造函数初始化列表放在同一行或者按四格缩进并排几行。
MyClass::MyClass(int var) : some_var_(var), some_other_var_(var + 1) {
或者
MyClass::MyClass(int var)
: some_var_(var),
some_other_var_(var + 1) {
8. 命名空间不缩进
9. 水平/垂直留白的使用因地制宜,永远不要在行尾添加没意义的留白
关于google c++编程风格的实践,可以观摩google的开源工程google test,很有借鉴意义。