类设计者的核查表(转自C++rumination)

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引用么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值