c++CLASS public protected private 继承

#include <iostream>
using namespace std;
class Inherit//继承
{public:
    string public_str;
    void public_func()
    {cout<<"public_func:"<<public_str<<endl;}
protected:
    string protected_str;
    void protected_func()
    {cout<<"protected_func:"<<protected_str<<endl;}
private:
    string private_str;
    void private_func()
    {cout<<"private_func:"<<private_str<<endl;}
};
/*派生类通过 public 继承,基类的各种权限不变*/
class inheritPublic:public Inherit
{public:
    inheritPublic(){
    /*派生类的成员函数,可以访问基类的public成员、protected成员,*/
    public_str=   "public_str   ";
    protected_str="protected_str";
    public_func();
    protected_func();
    /*但是无法访问基类的private成员*/
    //private_str="private_str"; 访问不到 错误
    //private_func();
    }
    void inheritPublicFunc()
    {cout<<"inheritPublicFunc:"<<inheritPublicData<<endl;
    }
    ~inheritPublic()
    {}
private:    string inheritPublicData="kakakaka";
};
/*派生类通过protected继承,基类的public成员在派生类中的
 * 权限变成了protected 。protected和private不变*/
class inheritProtected:protected Inherit
{public:
        inheritProtected()
        {/*派生类的成员函数,可以访问基类的public成员、protected成员,
          但是无法访问基类的private成员*/
            public_str=   "public_str   ";
            protected_str="protected_str";
            public_func();
            protected_func();
            //private_str   ="private_str";
            //private_func();
        }
        void inheritProtectedFunc()
        {cout<<"inheritProtectedFunc:"<<inheritProtectedData<<endl;}
        ~inheritProtected()
        {}
private: string inheritProtectedData="bababa";
};
class inheritPrivate: private Inherit
{public:
    inheritPrivate(){
        /*派生类的成员函数,可以访问基类的public成员、protected成员,
         * 但是无法访问基类的private成员*/
        public_str=   "public_str   ";
        protected_str="protected_str";
        public_func();
        protected_func();
        //private_str  ="private_str";
        //private_func();
      }
    void inheritPrivateFunc()
    {cout<<"inheritPrivateFunc:"<<inheritPrivateData<<endl;}
    ~inheritPrivate(){}
private: string inheritPrivateData="cacaca";
};
int main()
{   inheritPublic    iPublic;//数据在派生类内  实例化派生类 将数据通过基类显示出来
    iPublic.inheritPublicFunc();
    cout<<"================iPublic   "<<endl;
    inheritProtected iProtected;
    iProtected.inheritProtectedFunc();
    cout<<"================iProtected"<<endl;
    inheritPrivate   iPrivate;
    iPrivate.inheritPrivateFunc();
    cout<<"================iPrivate  "<<endl;
    cout<<"实例化派生类-> 基类"<<endl;
    iPublic.public_func();
      //iProtected.protected_func();
      //iPrivate.private_func();
 
    //继承基类的protected; 类的实例对象无法访问
    //任何成员
      //iProtected.public_func();
      //iProtected.protected_func();
      //iProtected.private_func();
 
    //继承基类的private; 类的实例对象无法访问
    //任何成员
      //iPrivate.public_func();
      //iPrivate.protected_func();
      //iPrivate.private_func();
    cout << "Hello World!" << endl;
    return 0;
}
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值