设计class犹如设计type
定义一个class,定义一个好的class需要考虑很多条件。
1.新type的对象应该如何被创建和销毁?
2.对象初始化和对象赋值该有什么样的区别?
3.新type的对象如果被pass by value,意味着什么?
4.什么是新type的合法值?
5.新type需要配合某个继承图系(inheritance graph)吗?
6.新type需要什么样的转换?
7.什么样的操作符和函数对此新type而言是合理的?
8.什么样的函数应该被驳回?
9.谁该取用新type的成员?
10.你真的需要一个新type吗?