1。你的类需要一个构造函数么?
2。你的数据成员是私有的么?
感觉对于简单的只是用于数据包装的类不需要把数据成员设成私有,比如一个复数类。对于复杂类的状态应该设成私有,只允许通过接口函数来更改和读取成员。
3。你的类需要一个无参的构造函数么?
需要,(1).若无无参构造函数,则类似于Point p;的语法是非法的。(2)更重要的是无法生成该类对象的数组, Point pa[100]; //错误!!
4。是不是每个构造函数初始化所有的数据成员?
为了不导致未初始化错误,尽量初始化所有成员,但有些情况例外,比如只有对象存在一段时间之后其成员才有意义。
5。类需要析构函数么?
取决于该类是否分配了资源,而这些资源又不会被成员函数自动释放。
6。类需要一个虚析构函数么?
虚析构函数是很有必要的的,当新类继承此类之后,假如基类没有虚析构函数,当基类指针指向派生类,析构时可能导致调用错误的析构函数。
7。你的类需要复制构造函数么?
同样,取决于当类的构造函数分配资源,比如成员函数里有int *变量。。。
8。你的类需要一个赋值操作符么?
同7,一般需要复制构造函数就需要一个赋值操作符
9。你的赋值操作符能正确的将对象赋给对象本身么?
10。 你的类需要定义关系操作符么?
depends
11。 操作数组记住delete[]么?
12。记得在复制构造函数和赋值操作符的参数类型中加上const了么?
13。如果函数有引用参数,他们是const引用么?