- UID
- 1
- 精华
- 积分
- 76361
- 威望
- 点
- 宅币
- 个
- 贡献
- 次
- 宅之契约
- 份
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
注意:我不用C++。我只是说说而已。。。
1、使用预编译头。
2、对于每个类,建立两个文件:“类名.cpp”和“类名.h”
3、用头文件定义类,类的“方法”按照以下方式划分:
- 需要公开实现方式
对于需要公开实现方式的“方法”,使用inline关键字(记得用宏将其重新定义一下,免得有些平台的C艹编译器不支持inline,在那种情况下你可以把宏的定义换成另一个关键字static来使其编译通过),然后将实现写在头文件中。不要写在类的定义里,要用“类名::方法”的方式定义,以便于阅读。 - 需要不公开实现方式
对于需要不公开实现方式的“方法”,不能使用inline关键字。将实现写在对应的cpp文件中。cpp只包含预编译头。
其中应该将简短的“方法”进行公开,而复杂的方法或者应该进行保护的“方法”则写进cpp。
4、如果有必要,使用命名空间将自己定义的类进行封装。
5、尽可能不将自己类实现某些方法时用到的其它库的头文件包含进类的头文件,而是将其藏到cpp文件或者预编译头中,以防止命名空间污染。
6、尽可能先写好头文件以及其中的类的公开实现的“方法”的实现部分,然后再写cpp文件,因为改动了头文件后预编译头就要重新生成——那通常很耗时!
7、对于成员变量,如果它是对外只读的,将其设置为private或者protected成员,提供内联的Get方法,如果是只写的,提供Set方法。而如果它是可读写并且不需要在读写的时候执行额外的操作的话,没必要给它写Get和Set,直接将其设置为public成员即可。
8、写好文档,描述清楚各个类之间的关系以及用法。
9、要么纯粹进行面向对象编程,要么纯粹进行面向过程编程。面向对象时尽可能减少“全局函数”、“全局变量”的使用。
10、没有实现的“方法”,用注释写上“TODO:”作为备忘。
|
|