zoukankan      html  css  js  c++  java
  • c++中成员以及继承中修饰符的介绍

    include

    using namespace std;
    //////////////////////////////////////////////////////////////////////////
    class A //父类
    {
    private:
    int privatedataA;
    protected:
    int protecteddataA;
    public:
    int publicdataA;
    };

    //////////////////////////////////////////////////////////////////////////
    class B :public A //基类A的派生类B(共有继承)
    {
    public:
    void funct()
    {
    int b;
    b = privatedataA; //error:基类中私有成员在派生类中是不可见的
    b = protecteddataA; //ok:基类的保护成员在派生类中为保护成员
    b = publicdataA; //ok:基类的公共成员在派生类中为公共成员
    }
    };

    //////////////////////////////////////////////////////////////////////////
    class C :private A //基类A的派生类C(私有继承)
    {
    public:
    void funct()
    {
    int c;
    c = privatedataA; //error:基类中私有成员在派生类中是不可见的
    c = protecteddataA; //ok:基类的保护成员在派生类中为私有成员
    c = publicdataA; //ok:基类的公共成员在派生类中为私有成员
    }
    };

    /////////////////////////////////////////////////////////////////////////
    class C1: public C
    {
    public:
    void fun()
    {
    int c1;
    c1 = protecteddataA; //error: 基类中私有成员在派生类中是不可见的
    c1 = publicdataA; //error: 基类中私有成员在派生类中是不可见的
    }
    };

    //////////////////////////////////////////////////////////////////////////
    class D :protected A //基类A的派生类D(保护继承)
    {
    public:
    void funct()
    {
    int d;
    d=privatedataA; //error:基类中私有成员在派生类中是不可见的
    d=protecteddataA; //ok:基类的保护成员在派生类中为保护成员
    d=publicdataA; //ok:基类的公共成员在派生类中为保护成员
    }

    };

    //////////////////////////////////////////////////////////////////////////
    class D1: public D
    {
    public:
    void func()
    {
    int d1;
    d1 = protecteddataA; //ok! 基类的保护成员在派生类中为保护成员
    d1 = publicdataA; //ok! 基类的保护成员在派生类中为保护成员
    }
    };

    //////////////////////////////////////////////////////////////////////////
    int main()
    {
    int a;

    B objB;
    a = objB.privatedataA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见
    a = objB.protecteddataA; //error:基类的保护成员在派生类中为保护成员,对对象不可见
    a = objB.publicdataA;    //ok:基类的公共成员在派生类中为公共成员,对对象可见
    
    C objC;
    a = objC.privatedataA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见
    a = objC.protecteddataA; //error:基类的保护成员在派生类中为私有成员,对对象不可见
    a = objC.publicdataA;    //error:基类的公共成员在派生类中为私有成员,对对象不可见
    
    D objD;
    a = objD.privatedataA;   //error:基类中私有成员在派生类中是不可见的,对对象不可见
    a = objD.protecteddataA; //error:基类的保护成员在派生类中为保护成员,对对象不可见
    a = objD.publicdataA;    //error:基类的公共成员在派生类中为保护成员,对对象不可见
    
    return 0;
    

    }

  • 相关阅读:
    带你玩转Flink流批一体分布式实时处理引擎
    都2022年了,你的前端工具集应该有vueuse
    云图说|图解DGC:基于华为智能数据湖解决方案的一体化数据治理平台
    面试官: Flink双流JOIN了解吗? 简单说说其实现原理
    4种Spring Boot 实现通用 Auth 认证方式
    这8个JS 新功能,你应该去尝试一下
    Scrum Master需要具备哪些能力和经验
    dart系列之:时间你慢点走,我要在dart中抓住你
    dart系列之:数学什么的就是小意思,看我dart如何玩转它
    dart系列之:还在为编码解码而烦恼吗?用dart试试
  • 原文地址:https://www.cnblogs.com/131415-520/p/13258727.html
Copyright © 2011-2022 走看看