C++之 继承后的访问控制

来源:互联网 发布:太原市知达常青藤学校 编辑:程序博客网 时间:2024/05/16 13:54

    C++中派生类有3种,分别为public、private和protected。

   不同的继承方式的影响主要体现在:

    1.派生类“对象”对基类成员的访问控制。

    2.派生类“成员”对基类成员的访问控制,此处“成员”可以理解成派生类内部定义时使用基类成员的访问控制。

    根据这2点影响,分别分析不同继承方式的区别如下:

    一、公有继承public

    1.基类的public和protected成员的访问属性在派生类中保持不变,但是基类的private成员不能被访问。

    2.派生类的成员函数可以直接访问基类中的public和protected成员,但不能访问private成员。

    3.通过派生类的“对象”,只能访问基类的public成员。

   二、私有继承private

     1.基类的public和protected成员都以private身份出现在派生类中,但是基类的private成员不能访问。

     2.派生类的成员函数可以直接访问基类中的public和protected成员,但是不能访问private成员。

     3.派生类的“对象”不能访问基类中的任何成员。

   三、保护继承protected

        1.基类的public和protected成员都以protected身份出现在派生类中,但是基类的private成员不能访问。

     2.派生类的成员函数可以直接访问基类中的public和protected成员,但是不能访问private成员。

     3.派生类的“对象”不能访问基类中的任何成员。


那么protected成员的特点与作用:对建立起所在类“对象”的模块来说,它与private成员性质相同;对于其派生类来说,它与public成员的性质相同,既实现了数据的隐藏,又方便了继承,实现了代码的重用,这也是C++的多态性的一种体现。






0 0