专业化的程式设计之Coding Rules谈(2)
二.消除程序中的隐患
降低耦合性:
1.只有被其他类引用的函数才定义成public型函数。
2.类中最好不用public型成员变量(经典代替方法:为这个变量写Get与Set函数)。
3.最好不使用全局变量。
说明:可以在C*App类中指定,然后使用AfxGetApp()->***来使用
提高聚合性:
1.一个公用的成员函数不可返回所在类的成员变量的指针或非常量的引用。
2.使用一个类,在可能的情况下(仅通过指针或引用被访问的类),应将类的头文件包含在使用者的.cpp文件中,提高封装性,同时避免重复包含(类为自定的情况下)。如果必须在使用者的.h文件中包含此类的头文件,应使用ifdef...语句避免重复包含。
3.函数的功能应单一,参数的意义应该单一。
基本规则:
1.尽量使用括号来清晰计算表达式的顺序。
2.使用引用参数来代替指针参数(明晰语义;保证传递时已经初始化了;保持效率)。
3.变量定义时应赋初值。
4.使用NULL == *,FALSE == *,代替 * == NULL,* ==FALSE...。
说明:避免笔误
5.使用NULL;空语句。
While(---)NULL; file://避免笔误(误加分号)
6.使用const static 代替 #define(使用编译器的类型检查机制)。
7.所有含虚函数的类的析构函数必须是虚析构函数。
8.在VC下编程时,设置编译选项“Warning level”为“Level 4”(启动编译器所有的预警功能)。
9.函数中自己编制的return前,最好应用系统默认值。
10. debug版与Release版。
#ifdef DEBUG #define DEBUG
......
.....
#endif #undef DEBUG
11. 反安装时,应移去所有我们自定义的DLL,LIB,OCX,注册表项...。