美文网首页
Effective c++ 学习笔记(item 38 item3

Effective c++ 学习笔记(item 38 item3

作者: 懒生活 | 来源:发表于2022-10-14 10:46 被阅读0次

    # private继承和public继承的区别

    ```

    class Base{};

    class Derived:public Base{};

    int printName(Base& a){};

    int main()

    {

    Derived aDerived;

    printName(aDerived);

    }

    ````

    如果Derived是private继承于Base那么这段代码会编译不过去。因为编译器不认为Derived 和 Base是is_a的关系,在编译的时候不对`printName(aDerived)`进行向上隐式转换。

    # private继承是什么语意

    当你要让一个继承类private方式继承于Base类的时候,说明你这个新类在实现中需要借用Base的一些实现。但base的任何信息你不希望对外呈现,仅仅是你的新类使用一下。所以private继承过来的所有接口都会变成继承类的private类型。

    相关文章

      网友评论

          本文标题:Effective c++ 学习笔记(item 38 item3

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