Skip to content

Latest commit

 

History

History
15 lines (15 loc) · 1.07 KB

rule19.md

File metadata and controls

15 lines (15 loc) · 1.07 KB

设计class犹如设计type

  • C ++中设计一个class就好像设计一个type,所以必须慎重,需要考虑如下问题:
  1. 新的type类型应该如何创建和销毁? (见chapter8)
  2. 对象的初始化和对象的赋值之间该有什么差别? 注意赋值和初始化的差别(见rule4)
  3. 新的type对象如何别使用值的方式传递,意味着什么?
  4. 什么是type的合法值? (规范拷贝构造和setter等方法)
  5. 你的新的type需要配合某一个继承图系? (比如你的type对于继承你的类有那些影响?)
  6. 你的新的type需要怎样的类型转换? (可以参考条例15)
  7. 什么样的操作符和函数对于这一个新的type而言比较合理?
  8. 什么样的标准函数应该驳回?(见条款06)
  9. 谁该采用新的type成员?
  10. 你的新的type有多么一般化?
  11. 你真的需要一个type吗? (如果不需要,可以使用成员函数替代)
  • 总结:
    • Class的设计犹如设计type,在定义一个新的type之前,请确定你已经考虑过本条款覆盖的所有讨论主题了