Effective C++ 第十九条 Treat class design as type design.
设计 class 犹如 设计 type
我们设计一个 class 就如同设计一个 C++ 内置类型一样,是为一个新 type,当我们设计新 type 的时候需要考虑以下内容:
新 type 的对象应当如何被创建和销毁 ?
对象的初始化和对象的赋值该有什么样子的区别 ?
新 type 的对象如果被 passed by value 意味着什么?
什么是新 type 的 “合法值” ?
你的新 type 需要配合某个继承图系(Inheritance graph)吗?
你的新 type 额需要什么样的转换 ?
什么样的操作符和函数对此新 type 而言是合理的?
什么样的标准函数应该被驳回?
谁该取用新 type 的成员?
什么是新的 type 的 “未声明接口” ?
你的新 type 有多么一般化?
你真的需要一个新 type 吗?
这一些列内容会在本合集 Effective C++ 读后总结的 “第二三单元总结” 中所体现。

