// 条款19: 设计class犹如设计type
// 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吗?