4.6.2 继承方式

 

继承方式:

公共继承

保护继承

私有继承

 

//4.6.2 继承方式
#include<iostream>
using namespace std;

class Base1
{
public:
    int m_A;
protected:
    int m_B;
private:
    int m_C;
};

class Son1 :public Base1
{
public:
    void func()
    {
        m_A = 10;//父类中的公共权限成员,到子类中依然是公共权限
        m_B = 10;//父类中的保护权限成员,到子类依然是保护权限
    //    m_C = 10;//父类私有权限,不可访问
    }
};
class Base2
{
public:
    int m_A;
protected:
    int m_B;
private:
    int m_C;
};
class Son2 :protected Base2
{
    void func()
    {
        m_A = 100; //父类中公共成员到子类中变为保护权限
        m_B = 100;//依旧是保护
        //m_C = 100; 父类中私有 子类访问不到
    }
};
void test01()
{
    Son1 s1;
    s1.m_A = 100;
    //s1.m_B = 100;//到Son1还是保护权限 ,类外不可访问
}
void test02()
{
    Son2 s2;
    //s2.m_A = 100;//在Son2中m_A为保护权限 类外不可访问
    //s2.m_B = 100;//保护 类外不可访问

}

class Base3
{
public:
    int m_A;
protected:
    int m_B;
private:
    int m_C;

};
class Son3 : private Base1
{
public:
    void func()
    {
        m_A = 100;//父类公共成员 变为私有
        m_B = 100;//父类中保护成员 变为私有
        //m_C = 100; 子类访问不到
    }
};

class GrandSon3 :public Son3
{
public:
    void func()
    {
        //m_A = 10000;到了Son3变为私有的了
    //    m_B = 10000;  到了Son3 变为了私有的了
    }
};

void test03()
{
    Son3 s3;
    //s3.m_A = 100;//父类中公共成员 到子类变为 私有成员
    //s3.m_B = 100;//父类中保护成员 到子类变为 私有成员
    //s3.m_C = 100; //父类中私有成员 子类访问不到
}
int main()
{
    test01();
    test02();
    test03();
    system("paue");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值