仔细了解c++继承


继承是什么?

继承是c++语言面向对象编程中一个重要的机制,在一个类原有的基础上,增加些新的成分来建立一个新的类

继承方式

1.公有继承

  • 基类的公有成员(变量和函数)继承到子类公有成员,在派生类可以访问,类外也可以访问
  • 保护成员变成基类的保护成员,派生类可以访问,外部不能访问
  • 私有成员子类也一样不可以访问

2.保护继承

  • 基类公有成员,子类中继承为自己的保护成员,在派生类可以访问,在外部不可以访问
  • 基类保护成员,子类中继承为自己的保护成员,在派生类可以访问,在外部不可以访问
  • 基类私有成员,子类一样不可以访问基类的私有成员。

3.私有继承

  • 基类公有成员,子类中继承为自己的私有成员,在派生类可以访问,在外部不可以访问。
  • 基类保护成员,子类中继承为自己的私有成员,在派生类可以访问,在外部不可以访问。
  • 基类私有成员,子类一样不可以访问基类的私有成员,

访问权限和继承权限

  • 访问权限和继承权限是不同的概念
  • 访问权限和继承权限关键字上是一样的,但是出现位置不一样
  • 如果是protected继承方式,基类public的成员变量不能通过基类对象在类外直接访问
  • 基类私有的成员变量在子类中都不能直接访问,因为没有被子类继承了

继承代码实例

class A
{
public:
  void f(){ cout<<"A::f()"<<endl; }
  int a;   
};

class B : public A
{
public:
  void f(int a){cout<<"B::f()"<<endl;}
  int a;
};

int main()
{
  B b;
  b.f();
  return 0;
}

上述代码不能通过编译,调用派生类f()函数参数太少

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值