Effective C++_读书笔记_106

作者: FlyingPig_ | 来源:发表于2018-12-20 20:12 被阅读1次

    继承与面向对象设计

    OOP不是一项用来划分语言特性的仪典, 而是可以让你通过它说出你对软件系统的想法.
    永远铭记 80-20 原则.

    条款32

    确定你的 public 继承塑模出 is-a 关系

    public 继承意味着 is-a 关系. 适用于 base class 身上的每一件东西也一定适用于 derived classes 身上, 因为每个 derived class 对象也是一个 base class 对象.

    条款33

    避免遮掩继承而来的名称

    简单来说就是不同作用域的问题.
    derived class 内的名称会遮掩 base class 内的名称. 在 public 继承下从来没有人希望如此. (这样违反了条款32).

    条款34

    区分接口继承和实现继承

    纯虚函数也可以有默认实现, 但只能实现接口继承;
    接口继承和实现继承不同, 在 public 继承下, derived classes 总是继承 base class 的接口.
    pure vitual 函数只具体指定接口继承.
    impure virtual 函数具体指定接口继承和缺省实现继承.
    non-pure 函数具体指定接口继承以及强制性实现继承.

    条款35

    考虑 virtual 函数以外的其他选择

    条款36

    条款37

    条款38

    条款39

    相关文章

      网友评论

        本文标题:Effective C++_读书笔记_106

        本文链接:https://www.haomeiwen.com/subject/hlwykqtx.html