C++ 类设计核查表

设计类时,下面的几点用来提醒设计者思考类是否设计的完美:


1 类需要一个无参的构造函数么?

     如果只定义了一个有参的构造函数,那么编译器就不会自动添加默认构造函数了,那么如果此时下面语句就是不合法的(以point类为例):

    point p;//不合法!

    或者声明数组 point parray[100]; //不合法


2 类需要析构函数么?

      如果类分配了资源,这些资源不会由成员函数自动释放,特别是在构造函数中,出现了new,那么必须要在析构函数中负责清除掉。


3  类需要虚析构函数么?

     如果定义了一个要被继承的类(比如class B),那么这个类应该拥有虚析构函数,否则当构建了class D继承自class B后,delete 指向D对象的指针,会出错!


4  类需要赋值构造函数和复制构造函数么?

    如果定义了析构函数,那么一般来说,都需要自己重新定义复制和赋值函数。其中,要首先检查有没有自我赋值的情况!


5  类函数或者形参需要const么?

    复制构造函数和赋值构造函数不应该改变形参,所以应该加入const限定。

    使用X::operator=(const X&),X::X(const X&). 另外,当方法不改变形参时,在形参前面加上const限制。或者方法不会改变对象本身时,可以在函数后面加上const限制。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值