C++(或者其他OOP语言),当定义一个新class,也就定义了一个新type。
设计高效的class要面对的问题——114
(1)新type的对象应该如何被创建和销毁?
(2)对象的初始化和对象的赋值该有什么样的差别?
(3)新type的对象如果被passed by value,意味着什么?
(4)什么使新type的“合法值”?
(5)你的新type需要配合某个继承图系吗?
(6)你的新type需要什么样的转换?
(7)什么样的操作符和函数对此新type而言是合理的?
(8)什么样的标准函数应该驳回?
(9)谁该取用新type的成员?
(10)什么是新type的“未声明接口”?
(11)你的新type有多么一般化?
(12)你真的需要一个新type吗?
总结——116
Class的设计就是type的设计。在定义一个新type之前,请确定你已经考虑过本条款覆盖的所有讨论主题