欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++类继承(公有继承、私有继承、保护继承)

程序员文章站 2022-03-08 20:24:46
...

公有继承:基类的公有成员和保护成员派生类可以访问,属性不变;
私有继承:基类的公有成员和保护成员派生类可以访问,属性都变成私有成员;
保护继承:基类的公有成员和保护成员派生类可以访问,公有成员变成保护成员。

例如:

class RichMan
{
public:
    RichMan();
    ~RichMan();
    int company;//基类、派生类(儿子),外部可以访问
private:
    int car;//基类、友元、派生类可以访问
    int money;
protected:
    int house;//基类、友元可以访问
};

//第一个儿子公有继承
class RichSon1:public RichMan
{
public:
    RichSon1();
    ~RichSon1();
    //int company;车还有,依然是公有成员
private:
    //私有成员都没有了
protected:
    //int house;房子还有,依然是保护成员
};

//第二个儿子私有继承
class RichSon2:private RichMan
{
public:
    RichSon2();
    ~RichSon2();
private:
    //基类的私有成员都没有了

    //int company;基类的公有成员和保护成员变成派生类的私有成员
    //int house;
protected:
};

//第三个儿子保护继承
class RichSon3:protected RichMan
{
public:
    RichSon3();
    ~RichSon3();
private:
    //基类的私有成员都没有了
protected:
    //int company;基类的公有成员变成派生类保护成员
    //int house;
};

可以看出,基类的私有成员不参与继承。