news 2026/5/22 17:52:51

#多重继承

作者头像

张小明

前端开发工程师

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/5/3 7:35:11

【共价键】从氢原子到DNA的生命之桥

原子之间的“电子牵手”&#xff0c;构成了我们世界的基础你是否曾想过&#xff0c;水为什么是液态的&#xff1f;钻石为什么如此坚硬&#xff1f;DNA 为什么能储存遗传信息&#xff1f;所有这些看似不同的问题&#xff0c;都有一个共同的答案&#xff1a;共价键。今天&#xf…

作者头像 李华
网站建设 2026/5/9 20:06:32

零基础也能懂的机器学习核心概念解读

一、核心概念解读 1. 机器学习&#xff08;ML&#xff09; 专业定义&#xff1a;一门让计算机无需被明确编程就能从数据中学习并改进的学科&#xff0c;其核心是构建能从经验&#xff08;数据&#xff09;中自动提炼规律、并用于预测或决策的系统。 通俗解读&#xff1a;就像教…

作者头像 李华
网站建设 2026/5/23 3:19:49

网络安全行业,国内未来网络安全细分领域赛道谁会是黑马?

网络安全行业&#xff0c;国内未来网络安全细分领域赛道谁会是黑马&#xff1f; “那个细分领域会是未来行业的黑马&#xff1f;” 网络安全行业&#xff0c;比较权威的最新趋势来源主要是IDC。 IDC的影响可谓深远&#xff0c;这从很多网络安全公司的年报和包年报数据就能看得…

作者头像 李华
网站建设 2026/5/22 22:22:23

连续10年霸榜中国大学最高薪专业,它凭什么?

连续10年霸榜中国大学最高薪专业&#xff0c;它凭什么&#xff1f; 同样是应届生&#xff0c;有人试用期工资连房租都不够&#xff0c;有人却刚毕业就拿 8k&#xff0c;甚至入职大厂直接月薪 15k—— 这不是 “运气差”&#xff0c;而是选对了专业。 有个专业&#xff0c;202…

作者头像 李华