12.6.2 三种继承方式
继承有三种方式:
继承方式 | 关键字 |
---|---|
公有继承 | public |
保护继承 | protected |
私有继承 | private |
假设现在有一个父类A,有子类B分别以三种方式去继承父类。
- 共有继承。父类中的公有成员在子类中为公有,保护成员在子类中仍为保护,私有成员不继承。
- 保护继承。父类中的公有成员在子类中为保护,保护成员在子类中仍为保护,私有成员不继承。
- 私有继承。父类中的公有成员在子类中为私有,保护成员在子类中为私有,私有成员不继承。
我们来使用代码验证一下:
class A
{
public:
int a;
protected:
int b;
private:
int c;
};
class B :public A
{
public:
void func()
{
a = 10;
b = 20;
c = 30;
}
};
可以看到,父类中的私有成员c子类没有继承到,提示不可访问。但要判断继承后变成了什么类型的成员,还需要在类外看看能不能调用。这里不再验证。