zoukankan      html  css  js  c++  java
  • 自考新教材-p200

    源程序:

    #include<iostream>
    #include<string>
    using namespace std;

    class Base
    { //基类的3种访问控制类型成员变量
    public:
    int vBPub;
    protected:
    int vBPro;
    private:
    int vBPri;
    public: //基类的公有成员函数
    Base()
    {
    vBPub=10;
    vBPro=20;
    vBPri=30;
    };
    void SetPriValue(int);
    void SetProValue(int,int);
    int GetPriValue();
    int GetProValue();
    };

    void Base::SetPriValue(int k)
    {
    vBPri=k; //直接访问基类的成员变量
    }
    void Base::SetProValue(int m,int n)
    {
    vBPro=m; //直接访问基类的成员变量
    vBPri=n;
    }
    int Base::GetPriValue()
    {
    return vBPri; //直接访问基类的成员变量
    }
    int Base::GetProValue()
    {
    return vBPro; //直接访问基类的成员变量
    }

    class Derived:public Base //子类,公有继承于Base类
    {
    public:
    int vDPub,vBPub;
    protected:
    int vDPro;
    private:
    int vDPri;
    public: //派生类的公有成员函数
    Derived()
    {
    vDPub=100; //直接访问派生类的成员变量
    vDPro=200;
    vDPri=300;
    vBPub=15;
    };
    void SetPriValue(int);
    void SetProValue(int,int);
    int GetPriValue();
    int GetProValue();
    void PrintValue();
    };
    void Derived::SetPriValue(int k)
    {
    vDPri=k; //直接访问派生类的成员变量
    }
    void Derived::SetProValue(int m,int n)
    {
    vDPro=m; //直接访问派生类的成员变量
    vDPri=n;
    Base::vBPro=2*m; //可以直接访问从基类继承的保护成员变量
    //Base::vBpri=2*n; //不可以直接访问从基类继承的私有成员变量
    }
    int Derived::GetPriValue()
    {
    return vDPri; //直接访问派生类的成员变量
    }
    int Derived::GetProValue()
    {
    return vDPro; //直接访问派生类的成员变量
    }

    void Derived::PrintValue()
    {
    cout<<"在派生类中访问基类"<<endl;
    cout<<"基类公有变量:"<<vBPub<<endl; //派生类可以访问基类的公有成员变量
    cout<<"基类保护变量:"<<vBPro<<endl; //派生类可以访问基类的保护成员变量
    //cout<<Base::vBPri<<endl; //不能直接访问基类的私有变量
    cout<<"基类私有变量:"<<Base::GetPriValue()<<endl; //通过函数访问
    cout<<"在派生类中访问派生类"<<endl;
    cout<<"派生类公有变量:"<<vDPub<<endl; //可以直接访问
    cout<<"派生类保护变量:"<<vDPro<<endl; //可以直接访问
    cout<<"派生类私有变量:"<<vDPri<<endl; //可以直接访问
    cout<<"从基类继承的公有变量:"<<Base::vBPub<<endl; //可以直接访问
    cout<<"从基类继承的保护变量:"<<Base::vBPro<<endl; //可以直接访问
    //cout<<"从基类继承的私有变量:"<<Base::vBPri<<endl; //不可以直接访问
    }

    int main()
    {
    Base bObj;
    Derived dObj;
    cout<<"在主函数中访问基类"<<endl;
    cout<<"公有成员:"<<bObj.vBPub<<endl; //类外可以访问基类的公有成员变量
    //cout<<"保护成员:"<<bObj.vBPro<<endl; //不能直接访问保护成员变量
    cout<<"保护成员:"<<bObj.GetProValue()<<endl; //通过函数访问
    cout<<"私有成员:"<<bObj.GetPriValue()<<endl; //通过函数访问
    cout<<"在主函数中访问派生类"<<endl;
    cout<<"公有成员:"<<dObj.vDPub<<endl; //类外可以访问派生类的公有成员变量
    //cout<<"保护成员:"<<dObj.vDPro<<endl; //不能直接访问保护成员变量
    cout<<" 保护成员:"<<dObj.GetProValue()<<endl; //通过函数访问
    cout<<"基类 保护成员:"<<dObj.Base::GetProValue()<<endl; //通过函数访问
    cout<<"私有成员:"<<dObj.GetPriValue()<<endl; //通过函数访问
    cout<<"dObj.vBPub="<<dObj.vBPub<<endl;
    cout<<"dObj.Base::vBPub="<<dObj.Base::vBPub<<endl;
    dObj.PrintValue();

    return 0;
    }

    运行结果:

  • 相关阅读:
    怎么让Windows10取消开机登录密码自动登录
    window查看无线网卡bssid以及相关信息命令
    kali-cdlinux-wifi-pj-nanke-心得
    html里文本保留换行格式
    window实用快捷键-ctrl篇
    mybatis 结果映射 collection oftype为string,integer等类型
    Redis集群下只有db0,不支持多db
    软件开发过程中所使用的生命周期模型比较
    简单Dos命令
    简单理解Mysql json数据类型
  • 原文地址:https://www.cnblogs.com/duanqibo/p/12259880.html
Copyright © 2011-2022 走看看