公司内部有一份代码规范,感觉还是很有帮助的,简单列一下C++规范中的核心部分,必要的加一些自己的理解和实际编码过程中遇到的问题与感受,很多细节的说明不一一翻译了,能够明白行。
  第一部分:命名约定
  规则1:使用前缀m_, g_, s_来标示成员变量,全局变量和静态变量;
  规则2:变量名使用驼峰式大小写风格;
  规则3:类型名使用Pascal大小写风格;
  例:
typedef int Line;
struct SavingsInformation
{
};
  规则4:使用动词来命名函数与方法,并采用Pascal大小写风格;
  例外:
  COM/ATL中的getter与setter方法允许以get_或者put_开头;
  如果是需要覆盖基类的虚函数方法,则不一定要遵循这一规定;
  (个人理解:是在无法修改基本虚函数方法名的时候,派生类中是无法修改这个函数名的,所以不需要遵循这一规定,但如果是自己编写的基类,那么基类的函数命名应该遵循这一规则)
  规则5:指针或者智能指针名以p开头(在为成员变量,全局变量和静态变量所加的前缀之后)
  该规则仅仅是推荐使用,不作为强制规范。
  例如:
class CTest
{
// Member pointer
CObject *m_pObject;
...
};
void DoSomething()
{
// Local pointer
CObject *pObject = NULL;
...
}
  规则6: bool变量名以b开头;
  类似规则5;
  规则7: 不允许使用否定含义的bool变量名;
  这个是常常谈到的问题了!
  一般bool变量名好是bSuccessful,而不是bNotFailed;
  规则8:返回true或者false的回答问题的函数应该像个问题一样命名。
  举个简单的例子明白啦,比如说,这样的函数应该命名为IsEmpty()而不是Empty();
  规则9:选择易读的描述性的名字;
  也是说不要用a,b,c,d之类的简单命名啦!
  个人建议,不要挑选想ZhuDongFangYu这样的拼音作为变量名或者函数名;当然,用拼音来命名在我们公司是不允许的啦!
  规则10:常量名大写!
  坦白说,这一条我倒真没怎么遵循,主要是因为我所在的Team的代码中已经应用上了一套对于const变量的命名方式了,而且个人觉得也非常清晰易读,再加上我们的代码中并未能完全避免完全使用宏定义,所以这条规则我们并没有怎么遵守!