Google C++ Style Guide

来源:互联网 发布:js 获取父节点 编辑:程序博客网 时间:2024/06/05 19:33

这里包括了大多数,但是末尾的关于函数调用等具体写法,不好用一句话来总结,请参考原文;
重点的有争议的已经粗体标出,具体原因可以参考原文;
  1. 通常每一个cpp文件都应该关联一个头文件,除非单元测试;
  2. 所有头文件都应该添加格式如<PROJECT>_<PATH>_<FILE>_H_的警卫宏,避免重入多次包含;
  3. 如果前向声明够用就不要包含头文件;
  4. 只有10行以内的小函数才能够被inline;
  5. inline复杂函数文件名称请添加-inl.h的后缀;
  6. 函数参数请参照先input,后output的顺序;
  7. 头文件包含请参照顺序:C library, C++ library, other libraries' .h, your project's .h;
  8. 命名空间如果要用,使用路径名,不要使用using语句;
  9. 嵌套类请使用一个额外的命名空间使得其与全局命名空间区分开;
  10. 非成员函数/静态成员函数>>全局函数;
  11. 尽可能缩短局部变脸生存范围,且一定要初始化;
  12. 禁止使用静态或全局的类对象,因为其构造析构执行顺序引起的问题非常难以排除;
  13. 类构造函数仅仅设置成员变量初始值,复杂初始化应该交给显示Init函数;
  14. 定义一个默认构造函数,否则编译器会为你定义一个,通常都非常糟糕;
  15. 仅有一个函数的构造函数请加上explicit;
  16. 尽可能添加一个复制构造函数和赋值构造函数;
  17. 仅仅提供访问成员变量的类使用struct,其他使用class;
  18. 组合通常比继承更适合,继承请不要忘记添加public;
  19. 除一个基类外其他基类都是虚接口类的可以使用多重继承,其他情况尽量避免;
  20. 类满足特定条件是允许的但不是必须的,就可以作为接口类;
  21. 绝大多数情况下请不要重载运算符;
  22. 成员变量应该私有;
  23. 类中声明时,public在前private在后,函数在前,数据在后;
  24. 尽量减小函数行数,超过40请思考是否能抽象减少;
  25. scoped_ptr可用,不要使用auto_ptr,std::tr1::shared_ptr共享所有权;
  26. 使用cpplint.py来检测风格错误;
  27. 入口参数使用const引用,出口参数使用指针;
  28. 不要使用默认函数参数,避免复制产生难以察觉的错误;
  29. 避免使用栈上变长数组和栈上分配变长内存alloca,使用scoped_ptr和scoped_array;
  30. 尽量少用friend,即使使用,也要限制在一个文件中;
  31. 不使用c++异常机制:带来的问题得不偿失;
  32. 不使用RTTI运行时类别识别机制,非要使用那说明你设计的不当;
  33. 使用static_cast<>而不是强制类型转换(type)
  34. 不要使用streams除非是log日志类,使用printf-like函数;
  35. 使用++i而是i++;
  36. 尽可能使用const;
  37. 使用0做整数,0.0做浮点数,NULL做指针,'\0'做字符
  38. 使用sizeof(变量名)而不是sizeof(类型名)
  39. 使用被认证的boost类库:Call_Traits,Compressed_Pair,Pointer Container,Arra,BGL,PropertyMap等;
  40. 类型变量使用名词,函数使用动词,都应该使用描述性单词;
  41. 文件名称使用小写,可用_或-隔开;
  42. 类型名称每个单词的首字母都应该大写;
  43. 变量名称都小写,用_隔开,类的数据成员中最后添加_;
  44. 常量名称用小写k开头,其他每个单词都大写;
  45. 函数名称的每个单词首写字母都大写,设置获取成员的函数使用小写,用_隔开;
  46. 枚举变量名称使用每个单词首字母大写的格式,其中每个常量可采用全部大写或者k开头的每个单词首字母大写的形式;
  47. 文件注释:版权注释,license,作者,功能说明,(修改历史)
  48. 类注释:功能说明,简单示例
  49. 函数注释:功能说明,参数说明,是否可重入,线程同步,性能提示...,
  50. 使用TODO注释表明未来将要做的工作
  51. 每行代码不要超过80个字符
  52. 不要使用费asscii字符,都必须使用utf-8编码;
  53. 使用空格而不是tab,每2空格一个indent;
  54. 返回类型与函数名同行;
原文链接:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

原创粉丝点击