类的private继承,protected继承和public继承的区别

    技术2022-05-19  21

    考虑从基类B派生出的类D:

     

    ——如果B是private基类,那么它的public和protected成员只能由D的成员函数和友元访问。

          只有D的成员和友元能将D*转换成B*。

     

    ——如果B是protected基类,那么它的public和protected成员只能由D的成员函数和友元,

          以及由D的派生出的子类的成员函数和友元访问。只有D的成员

          函数和友元以及由D派生出的子类的成员函数和友元能将D*转换成B*。

     

    ——如果B是public基类,那么它的public成员函数可以由任何函数访问。除此之外,它的

          protected成员能由D的成员函数和友元,以及由D派生出的类的成员函数和友元访问。

          任何函数都能将D*转换成B*。

    public派生使派生类成为基类的一个子类型,这是最常用的派生形式。

    其他继承方式的使用,需要根据具体的设计来确定。通常是需要限制外界客户对基类访问权限时,

     

    使用private继承或者protected继承。

    参考文献:

         《C++程序设计语言》

     

     

     

     


    最新回复(0)