C++__继承

什么是继承?

  继承机制是提高代码复用率的最重要手段,它可以在保持原有类的基础上进行扩展,增加功能。这样产生的类叫派生类(也叫子类)
  取个例子:例如手机的更新换代
这里写图片描述
怎么使用继承?
这里写图片描述
 要注意类的访问权限和继承权限的区别使用,访问权限在类中使用。
 下面给出继承后派生类成员变量的访问权限变化
 这里写图片描述
 关于上表总结:
 
  不管什么继承方式,基类private成员在派生类中是不能被访问的。因为基类和派生类是两个不同的类,两者作用域不同,而类的私有成员变量在类外不能访问。

  public继承是一个接口继承,保持is-a原则,每个父类可用的成员对子类也可用,因为每个子类对象也都是一个父类对象。

  如果基类成员不想在类外被访问,但需要在派生类中能访问,就定义为protected由此可看出保护成员限定符是因为继承才出现的

  使用关键字class时默认的继承方式是private,使用关键字struct时默认的继承方式是public;最好能显式的给出继承方式

派生类对象的构造与析构
   
   继承体系下先调用派生类的构造函数,再调用基类构造函数
   继承体系下先执行基类的构造函数,再执行派生类构造函数
   继承体系下先调用派生类的析构函数,再调用基类析构函数
 这里写图片描述
基类没有定义构造函数,派生类也可以不用定义构造函数,全都使用缺省的构造函数。

基类有不是缺省的构造函数,派生类必须要在初始化列表中显式给出基类名和参数列表。
因为不显式定义的话,编译器不知道给基类构造函数传什么参数
这里写图片描述

基类和派生类的同名成员问题

    在基类和派生类中有同名成员,通过派生类对象访问同名成员则优先访问派生类
  在派生类成员函数中可以使用 基类::基类成员 访问

赋值兼容规则
子类对象可以赋值给父类对象(因为子类对象可以看成父类对象)
父类对象不能赋值给子类对象(会发生访问越界)
父类的指针或引用可以指向子类对象(多态的实现)
子类的指针或引用不能指向父类对象(可以通过强制类型转换完成)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值