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;
    

    }

  • 相关阅读:
    python 环境常用指令(updating...)
    English Voice of <<Take Me To Your Heart>>
    English trip V2-B 1 What's on the Menu? 菜单上有什么? Teacher:Tom
    VM-ESXI 相关常用命令(Updateing)
    English trip EM2- LP 5B Eating Right 正确的饮食 Teacher:Gabi
    (转)Linux中的screen命令使用
    Centos7 密码遗忘-单用户模式
    数据集
    SVD 实现
    网易音乐推荐原理及算法
  • 原文地址:https://www.cnblogs.com/131415-520/p/13258727.html
Copyright © 2011-2022 走看看