公有继承:基类的公有成员和保护成员派生类可以访问,属性不变;
私有继承:基类的公有成员和保护成员派生类可以访问,属性都变成私有成员;
保护继承:基类的公有成员和保护成员派生类可以访问,公有成员变成保护成员。
例如:
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;
};
可以看出,基类的私有成员不参与继承。