zoukankan      html  css  js  c++  java
  • C++类訪问控制及继承

    一、C++类的訪问控制有三类:public,protected和private。

    类訪问控制符 类成员可被哪些对象訪问
    public 1、类的成员函数。2、类对象。3、友元。4、子类成员函数
    protected 1、类的成员函数。2、友元。3、子类成员函数
    private 1、类的成员函数。2、友元



    二、C++类的继承

    继承方式也有三种:public,protected和private。

    继承之后,基类成员的可訪问性会发生变化,例如以下表:


    public继承

    基类 public protected private
    子类 public protected 不可见


    protected继承

    基类 public protected private
    子类 protected protected 不可见


    private继承

    基类 public protected private
    子类 private private 不可见

    从上面能够看出,经过继承后,基类的成员訪问性会发生改变,派生类对其的訪问仍然遵从类的訪问控制规则。有关三种继承方式,派生类对基类成员的訪问说明,网上有非常大网友写了大量的文章,只是我认为文字说明非常easy把人绕晕,反而丢掉了其本质。我以为继承没有网友说的那么麻烦,就是基类的可訪问性在派生类中发生了改变,然后,派生类再使用类訪问控制规则对其进行訪问就可以。


    值得注意的地方有两个:

    一、基类中的private成员在派生类中是不可见的,即无法通过派自己的成员函数去訪问,但能够通过继承来的成员函数訪问。

    二、private继承,基类的public和protected成员都成为派生类中的private成员,这样,假设对派生类再派生一个子类,那么,在派生的子类中,将无法直接通过该子类的成员函数訪问继承来的成员;



    三、派生类从基类中无法继承的是哪些成员

    派生类无法从基类中继承的成员有三种:

    1、构造函数和析构函数

    2、赋值操作符(operator=()member)

    3、友元


  • 相关阅读:
    python截取视频中的某一段,保存为avi结尾的视频
    文章内容过长,将此内容转为pdf的方式(使用node)
    typescript常见问题集锦
    利用matplotlib中imshow()函数绘图
    如何查看Linux系统安装时间
    php包含那点事情[WOOYUN]
    中间人攻击利用框架bettercap测试
    java 递归方法
    java方法重载
    JVM 之栈结构
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4009646.html
Copyright © 2011-2022 走看看