近期在看c++编程规范,总结出一些c++命名规则,以便自己加以注意,写出更好的代码。
其实,没有一套真正意义上面的命名规则能够让所有的程序员赞同,每个程序员都会有自己的一套,不过,能适应出大多数程序代码的风格,总比自己一个人特立独行的好。
1. 匈牙利表示法
比较著名的代码风格属于是由Microsoft公司的程序设计人员CharlesSimonyi首创的“匈牙利表示法”。在匈牙利表示法中,变量名以一个或多个小写字母开始,代表变量的类型。后面附以变量的名字,变量名以意义明确的大小写混合字母序列所构成。这种方案允许每个变量都附有表征变量类型的信息。如:WORD wParam1;LONG lParam2;HANDLE hInstance。
优点:通过给每个变量名加上表示所属数据类型的前缀,从而在编译前即可防止许多常见的错误。
例如:
Param1=Param2;//使用匈牙利表示法,就很容易查出下面的错误。
wParam1=lParam2;
缺点:这种表示方法会很繁琐,而且现代的编译器早已经可以明显看出任意变量的类型,你把类型写在前面除了增加代码长度外没有任何好处。而且我们需要的是看到变量的种类(kind),而不是类型(type),例如,成员变量(member),静态变量(static),全局变量(global)。
命名规则总结
1. 变量,参数和函数名
变量和参数用小写字母开头的单词组合而成,而且后面的单词用大写字母开头。例如:
double doorHeight;//门的高度
double personNum;//人的数量
void setValue(double valueOfHeight); // 函数名
double getValue(); // 函数名
2.类名
类名用大写字母开头的单词组合而成,例如:
class Node; // 类名
class LeafNode; // 类名
3.常量
常量全用大写的字母,用下划线分割单词。
const int MIN = 100;
const int MAX_LENGTH = 100;
4. 静态变量
静态变量加前缀 s_(表示static)。
void fun()
{
static int s_initValue; // 静态变量
}
5.全局变量
注意,全局变量尽量不要用,如果不得已需要全局变量,则使全局变量加前缀 g_(表示global)
int g_maxValue; // 全局变量
int g_minNum; // 全局变量
6.成员变量及成员函数
成员变量由于在构造函数中会出现成员变量与构造函数的参数名字相同(一般建议规范使用set跟get函数),因此会在前面加上小写字母m_(表示member),而成员函数在实现中由于需要类作用域来限定,因此一般与普通函数一样即可,也会辨别出来是那个类里面的成员函数。
成员变量:
string m_firstName;
string m_lastName;
int m_day;//日
int m_month;//月
int m_year;//年
成员函数:
int Date::checkDay(int day)
{
…
}
感谢指出错误,共勉。