c ++中继承问题小结

1.c++中继承有公有继承,保护继承,私有继承

    定义个基类:

    #include<iostream>

    using namespace std;

    class Base

    {

    public:

    void display()

    {

    cout《"huang"《endl;

    }

    protected:

    int x;

    private:

    int y;

    };

    定义一个派生类:

    公有继承:派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类的公有和保护成员,

    基类的公有成员和保护成员作为派生类的成员时,保持其原有状态

    class A:public Base

    {

    public:

    void print()

    {

    cout《"liglog"《endl;

    display();//派生类内部可以访问基类的公有成员

    x=0;//派生类内部中可以访问基类的保护成员

    cout《x《endl;

    //y=1;//派生类内部都不可访问基类的私有成员

    //cout《y《endl;

    }

    protected:

    int Ax;

    private:

    int Ay;

    };

    保护继承:派生类的成员函数可以访问基类的公有成员和保护成员,以及基类的公有成员和保护成员作为派生类的保护成员,保护成员还可被派生类的子类访问

    class B:protected Base

    {

    public:

    void print()

    {

    cout《"shi"《endl;

    display();//派生类内部可访问基类的公有成员

    x=1;//派生类内部可访问基类的保护成员

    cout《x《endl;

    //      y=1;//派生类内部不可访问基类的私有成员

    //      cout《y《endl;

    }

    protected:

    int Bx;

    private:

    int By;

    };

    私有继承:基类的公有成员和保护成员作为派生类的私有成员,不能被派生类的子类访问,即不能被往下继承。

    class C:private Base

    {

    public:

    void print()

    {

    cout《"wo"《endl;

    display();//派生类内部可访问基类的公有成员

    x=1; //派生类内部可访问基类的保护成员

    cout《x《endl;

    //      y=1; //派生类内部不可访问基类的私有成员

    //      cout《y《endl;

    }

    protected:

    int Cx;

    private:

    int Cy;

    };

    int main()

    {

    // 公有继承部分

    A aObject;

    aObject.display();//派生类外部可以访问基类的公有成员

    aObject.print();

    // aObject.x=1;//派生类外部不可访问基类的保护成员

    // aObject.y=3;//派生类外部不可访问基类的私有成员

    //保护继承部分

    B bObject;

    // bObject.display();//派生类外部不可访问基类的公有成员

    bObject.print();

    // bObject.x=1;//派生类外部不可访问基类的保护成员

    // bObject.y=1;//派生类外部不可访问基类的私有成员

    //私有继承部分

    C  cObject;

    //  cObject.display();//派生类外部不可访问基类的公有成员

    cObject.print();

    //  cObject.x=1;//派生类外部不可访问基类的保护成员

    //  cObject.y=1;//派生类外部不可访问基类的私有成员

    return 0;

    }

    哪里不对的,指点指点,别指指点点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值