C++下篇-继承和派生(10)

本文深入探讨了类的继承机制,解析了派生类如何继承基类的特性,包括访问权限、构造与析构函数调用顺序、虚基类概念及基类与派生类对象的转换原则。

继承:将父辈的统统继承给子类,构造函数除外。

访问权限的说明:

规则:当没有派生类这一引入时,对于类成员函数能访问public、protected、private属性成员(包括数据成员、成员函数),不能访问隐藏

对于对象而言,只能访问public属性的成员(包括数据成员、成员函数)

当引入派生类时候。派生类不能访问private属性成员(不用考虑继承方式);派生类对象只能访问public继承方式的public属性成员;

帮助理解,继承方式和成员属性类别都相当于水管,那么public、protected、private依次为大、中、小,在使用时可串联拼接,例如继承方式为protected时,那么为中,把基类成员函数依次拿过来拼接,得到水流量为中、中、小。

派生类不继承基类的构造函数和析构函数,但是继承基类的数据成员,当创建对象时,也要对这些数据进行初始化,那么在写派生类的构造函数时,必须带这些参数以初始化。

   派生类构造函数的调用顺序为:

  1. 基类构造函数
  2. 子对象类构造函数(如果有子对象的话)
  3. 派生类构造函数

TIPS:以上若从内存角度去考虑,在创建派生对象时,便是依次创建基对象部分,子对象部分、剩余的派生对象部分。

调用构造函数时,若没有默认构造函数,系统会送你一个(基类和派生默认都自动给);若无,则有了以后要遵守规则。

       派生类的析构函数执行顺序为:

  1. 先用派生类的析构函数
  2. 再调用派生类中子对象类的析构函数
  3. 最后调用基类的析构函数

派生类独立于基类的析构函数,可自己重写所需或系统自己提供

虚基类和虚继承:当某个子类继承多个中间类,中间类或多或少来自同一个基类时,为了不重复继承基类数据,那么采用虚继承时,只继承(保留)一组基类数据成员。那么这种方式,基类被称虚基类

继承和组合:继承是创建一种新类的方式,那么组合是将多个类打包封装作为新类别的成员。

基类对象与派生类对象之间的转换:只能派生类对象转向基类,前提是公有派生类-派生类对象能够实现向基类对象一样的功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值