Effective C++之19

条款19:设计class犹如设计type
       Class的设计是非常重要的问题,需要仔细考虑。如果以下问题都考虑了基本上也就可以了。
1.新type的对象如何被创建和销毁?构造函数,析构函数,拷贝,以及new、delete的重载,也许都需要做,也许什么都不需要做,但是重要的是要考虑好。
2.对象的初始化和对象的赋值有什么区别?这是在设计构造函数和赋值操作符需要考虑的。
3.如果type用以值传递意味着什么?在设计拷贝构造函数的时候需要考虑。
4.什么是type的合法值?在新type对象生成的时候需要注意内置成员的合法值,如果这些值不合法,结果可能是灾难性的。
5.新的type需要继承么? Base class的继承会带来什么样的影响?比如析构。
6.type需要什么样的转换?一般来说隐式转换虽然方便,但却是不推荐的,因为容易造成错误,所以我觉得显式转换才是非常需要的东东。
7.什么样的操作符和函数对此新的type是合理的?这将决定type对外的接口。
8.什么样的标准函数需要驳回?如果不需要编译器自动生成函数,就private它吧。
9.谁该取用新type的成员?这将决定成员是什么属性,以及type的friends。
10.什么是新type的“未声明接口”?对于类来说,可能需要考虑的问题不仅仅是本身,可能涉及到多线程的困扰.
11.新type有多一般化?如果需要的是一个系列,那就template吧。
12.真的需要新的type么?如果使用non-member或者template能够解决问题,那是最好的了。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值