news 2026/9/23 5:05:46

#多重继承

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
#多重继承

多重继承

定义:一个子类可以同时继承多个父类的属性和方法:

核心定义 :多重继承是面向对象编程(OOP)中的一种特性,指一个子类可以同时继承多个父类的属性和方法,相当于一个孩子同时继承了爸爸、妈妈甚至更多长辈的特征。
特点:子类可以从多个父类中继承成员变量和成员函数;
需要注意同名成员的冲突问题;
多重继承的语法格式
第一种方式(推荐):
class基类类名10:
class基类类名2:
class子类类名:继承方式基类类名1,继承方式基类类名2{}:
第二种方式:
class基类类名1:
class基类类名2:
class子类类名:继承方式基类类名1,基类类名2{:

#include <iostream> using namespace std; // 自定义基类Base class Base{ public: int value; // Base类的公共成员变量 }; // 自定义基类Base1 class Base1{ public: int value; // Base1类的公共成员变量,与Base类中的成员变量同名 }; // 自定义子类Son1,采用多继承方式,同时继承Base和Base1类 // 语法:class 子类名 : 继承方式1 基类名1, 继承方式2 基类名2, ... class Son1:public Base,public Base1{ public: void print(){ // 注意:直接访问value会产生二义性错误,因为两个基类都有同名成员 // 编译器无法确定应该访问Base::value还是Base1::value // cout << "value=" << value << endl; // 这行代码会编译错误 // 解决方法:使用"类名::"作用域限定符明确指定访问哪个基类的成员 Base::value = 100; // 访问并修改Base类中的value cout << "Base::value=" << Base::value << endl; // 输出Base类中的value Base1::value = 200; // 访问并修改Base1类中的value cout << "Base1::value=" << Base1::value << endl; // 输出Base1类中的value } }; int main(){ // 实例化子类Son1的对象s1 Son1 s1; // 调用子类的print方法 s1.print(); return 0; }

链式继承

链式继承:
是指子类依次从多个父类继承,形成一条链条状的继承结构;
每个子类只继承一个直接父类,但通过多层继承关系,可以间接访问更上层基类的成员:
语法格式:
class A {};
class B:public A{};
class C:public B (){};

链式继承,简单来说就是子类继承父类,这个父类又继承另一个更高层级的父类,形成一条 “链条式” 的继承关系。就像家族的辈分传承:孙子 → 父亲 → 爷爷 → 曾祖父,每一层都能继承上一层的特征,也能新增自己的特征。

#include <iostream> using namespace std; // 基类A:定义了最基础的保护成员变量 class A { protected: // 保护访问权限:派生类可访问,外部不可访问 int pro_A; // 基类A的保护成员变量 }; // 派生类B:公有继承自基类A,同时作为类C的基类(中间层基类) class B : public A // public继承方式:基类的public/protected成员在派生类中保持原访问级别 { public: // 打印函数:访问继承自A的pro_A和自己的pro_B void print(){ cout << "pro_A=" << pro_A << endl; // 可直接访问继承自A的保护成员 cout << "pro_B=" << pro_B << endl; // 访问自己的保护成员 } protected: int pro_B; // 类B自己的保护成员变量 }; // 派生类C:公有继承自中间基类B,形成A→B→C的多级继承链 class C : public B { public: // 重写print函数:访问从A、B继承的保护成员以及自己的保护成员 void print(){ // 为三个层次的保护成员赋值 pro_A = 111; // 可直接访问来自A的保护成员(通过B间接继承) pro_B = 222; // 可直接访问来自B的保护成员 pro_C = 333; // 访问自己的保护成员 // 输出三个保护成员的值 cout << "pro_A=" << pro_A &l
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 22:50:33

FPGA 通过 SPI 模式读写 SD 卡:实现与移植探索

FPGA以SPI模式读写SD卡&#xff0c;已经下板验证通过。 可移植到任何FPGA之中。在数字电路设计领域&#xff0c;FPGA&#xff08;现场可编程门阵列&#xff09;凭借其灵活性和强大的并行处理能力&#xff0c;成为众多项目的首选。而 SD 卡作为常用的存储介质&#xff0c;实现 F…

作者头像 李华
网站建设 2026/9/22 9:08:24

Thinkphp-Laravel电子设备商品商城采购系统的研究与设计

目录摘要项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理摘要 随着电子商务的快速发展&#xff0c;电子设备商品商城的采购系统成为企业提升运营效率的关键工具。本研究基于ThinkPHP和Laravel框架&#xff0c;设计并实现了一套高效、安全的电子设…

作者头像 李华
网站建设 2026/9/20 22:23:07

空心正交电感两路线圈信号极值偏移方向

简 介&#xff1a; 摘要&#xff1a;实验研究了空心正交电感测量交变磁场时出现的左右不对称现象。通过对比顺时针和逆时针旋转测量结果&#xff0c;发现两组线圈信号极值存在固定方向的偏移&#xff0c;且该偏移与旋转方向、磁场方位及传感器位置均无关。测试包括改变电磁门方…

作者头像 李华
网站建设 2026/9/20 22:17:50

面向自然科学领域机器学习与深度学习(高维数据预处理—可解释ML/DL—时空建模—不确定性量化-全程AI+Python)

随着观测技术、数值模拟与计算基础设施的迅猛发展&#xff0c;地球系统科学、生态学、环境科学等自然科学领域正迈入“大数据智能模型”驱动的新阶段。传统的统计建模方法虽具可解释性&#xff0c;却难以应对高维、非线性、多源异构的复杂自然系统&#xff1b;而以机器学习和深…

作者头像 李华
网站建设 2026/9/20 20:37:53

用户反馈收集:驱动产品不断进化

用户反馈收集&#xff1a;驱动产品不断进化 Image-to-Video图像转视频生成器 二次构建开发by科哥 在AI生成内容&#xff08;AIGC&#xff09;快速演进的今天&#xff0c;从静态图像到动态视频的跨模态生成正成为创意生产的新前沿。作为开发者“科哥”主导的二次重构项目&#x…

作者头像 李华