当前位置: 首页 > article >正文

4.4——多重继承

在前面学习了一个派生类只有一个基类,这种派生方法称为单继承或单基派生。当一个派生类具有两个或多个基类时,这种派生方法称为多重继承或多基派生。

多重继承派生类的声明

在C++中,声明具有两个以上基类的派生类与声明单基派生类的形式相似,只需要将继承的多个基类用逗号分隔即可,声明的一般形式如下:

class 派生类名:继承方式1 基类名1,……继承方式n 基类名n

{

        派生类新增的数据成员和成员函数

}

默认的继承方式是private,当出现缺省时,继承方式为private

说明:对基类成员的访问必须是无二义的

 

当出现二义性,我们怎么解决。

多重继承派生类的构造函数与析构函数

多重继承下派生类构造函数的定义形式与单继承派生类构造函数的定义形式相似,只是n个基类的构造函数之间用逗号分隔。多重继承下派生类构造函数的定义的一般形式如下:

派生类名(参数总表):基类名1(参数表1),基类名2(参数表2)……基类名n(参数表n)

{

        派生类新增数据成员初始化语句;

}

多重继承的构造函数的执行顺序和单继承构造函数一样,先执行基类的构造函数,再执行对象成员的构造函数,最后执行派生类的构造函数。

处于同一层次的各个基类构造函数的执行顺序,取决于声明派生类时所指定的各个基类的顺序,与派生类构造函数中定义的成员初始化列表的各项顺序没有关系。

析构函数的执行顺序则刚好与构造函数的执行顺序相反。

由于基类与派生类的析构函数是相互独立的,所以不会因为派生类没有析构函数则基类的析构函数得不到使用。

 

 


http://www.kler.cn/news/17818.html

相关文章:

  • 树形结构的三级分类如何实现?
  • 如何训练自己的大型语言模型
  • powershell定义文本,用户交互,正则表达式
  • 宝塔面板搭建自己的网站,并发布公网远程访问
  • 企业服务管理(ESM)工具
  • MySQL中的Join 的算法(NLJ、BNL、BKA)
  • XXLJOB
  • 知识变现海哥|这3种课程定价最容易爆单
  • asp.net+sqlserver企业财务管理系统
  • 【Mybatis】增删改查
  • 北斗导航 | 基于差分法的周跳探测(matlab 代码)
  • android pdf框架
  • unity航点寻径
  • js中对象和数组的都是如何解构的
  • 二挡起步——pythonweb开发Django框架,前端原生+Django后端框架+python网络抓包(代替数据库数据)(附带小案例)
  • Java学习之Swing图形界面
  • 关于面试官问Qt Connect的链接方式和类型问题
  • jQuery -- 常用API(下)
  • 《Netty》从零开始学netty源码(五十二)之PoolThreadCache
  • SpringBoot整合FreeMarker
  • 使用zabbix监控Windows指定服务| zabbix Windows service filter
  • 【网络】4万字细品TCP协议
  • yolov8 OpenCV DNN 部署 推理报错
  • 科大版中国版ChatGPT来啦!抢先体验
  • 还能这么玩?清华给 ChatGPT 做逆向,发现了 ChatGPT 的进化轨迹!
  • 记一次产线打印json导致的redis连接超时
  • 【算法】Check If Word Is Valid After Substitutions 检查替换后的词是否有效
  • MySQL高频面试题
  • 多通道振弦传感器无线采集仪通过短信和FTP文件修改参数
  • 设计原则之【接口隔离原则】