C++继承总结

Cpp_继承 一、继承的基本概念第一级抽象:从具体的对象抽象出共同的属性和行为。学生:姓名、年龄、学号、吃饭、睡觉、学习 教师:姓名、年龄、工资、吃饭、睡觉、授课 第二级抽象:将类型之间共性抽取出来形成超集,将类型之间的个性具体化的不同子集中。人类:姓名、年龄、吃饭、睡觉 - 超集体现共性 - 基类 | 派生 ^ 学生是人类的一部分:学号、学习 \ 子集 - 子类 V 阅读详情

继承概念
在原有的类不变的基础之上,新增一些函数,对功能进行拓展

继承特点
是面向对象程序设计的的层次结构
是实现由简单到复杂的认知过程

基类:被继承的类
派生类:在继承之后产生的新类

例子
手机系统会不断更新,然而,我们的手机更新之后的功能只是对原来的功能进行优化和新增

继承格式
派生类名 :继承权限 基类名

继承权限
这里写图片描述
注:
1、public 表示派生类中为 公有成员
2、Protect 表示派生类中为 受保护成员(派生类中可以访问,但是类外无法访问,该访问限定符因继承而出现)
3、Private 表示派生类中为 私有成员
4、不可见 表示 派生类中无法访直接问该成员

继承权限总结
Public继承是接口继承,保持is-a原则,即每一个子类的是父类的对象
Protect/private继承 是一个实现继承,基类的部分成员并不是完全成为子类接口的一部分,保持has-a原则(聚合原则)
class关键字默认的继承方式是private, struct关键字默认的继承方式是public

派生类默认成员函数(C98)
构造函数
1、 构造基类成员和派生类成员的调用次序:先调用派生类的构造函数(初始化列表中先构造基类成员再构造派生类成员),再调用基类构造函数构造基类成员之后,返回派生类构造函数继续构造派生类成员。

拷贝构造函数

析构函数
1、先调用派生类析构之后,调用基类析构(原因是:先创建的后销毁)

赋值操作符重载
取地址操作符重载
Const修饰的取地址操作符重载
(C++ 11中新增两个成员函数)
移动构造
移动赋值

继承体系中的作用域
1、基类和派生类不是同一块作用域
2、同名隐藏问题:因为派生类中有与基类同名的成员,派生类中将隐藏基类的同名成员,不能直接访问,可以通过 (基类名::基类成员)的方式访问

赋值兼容规则
1、前提:在public继承权限下
2、原因:每一个子类都可以是父类的对象
3、结果:
(1)子类对象可以赋值给父类对象,反之不行(会越界)。
(2)父类对象的指针或引用可以指向子类的对象,反之不然(需要强转完成)(会越界)

继承体系下派生类的对象模型
1、单继承
2、多继承
这里写图片描述
3、菱形继承
这里写图片描述
4、虚拟继承
这里写图片描述
5、菱形虚拟继承
这里写图片描述

谢谢关注!!
这里写图片描述

C++之继承 继承的概念及定义 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。 这就比如我们设计一个学生管理系统,学校中有老师,学生,工作人员等,我们要记录他们的信息比如学生有电话,姓名,地址,学号等这些信息。 class Student { str 阅读详情

相关推荐

CPP中的继承语法

CPP中的继承语法

BinaryWiker的博客 1102

C++防止类被继承

学过C++,看过一些C++书籍的人一般都知道怎么防止一个类被构造初始化,被赋值等等,它们的思想都一样,就是把相应的操作放到private区域中。现在,给大家介绍一种防止一个类被继承的方法,很巧妙~~ 要防止一个类被继承,我们的目标就是如果这个类被继承,那么编译的时候就会出错,要是现这个目标,我们必须利用语言的一些特性,使得继承的类在编译时 C++需要为它生成一些代码,但是由于其它一些原因而生成不

docblue logging 756

Unity UI适配实战:从Canvas Scaler到主流游戏适配方案解析

本文深入解析Unity UI适配的核心技术,重点介绍Canvas Scaler组件的关键参数如Reference Resolution和Screen Match Mode,并提供主流游戏适配方案实战分析。通过九宫格拉伸、动态调整等技巧,帮助开发者解决多设备适配难题,提升游戏UI在不同分辨率下的表现。

weixin_29001419的博客 972

C++的继承方式

C++支持多种程序设计风格,其中就包括对面向对象设计的支持。我们今天在这里将会为大家详细介绍一下各种C++继承方式的具体应用方法,希望能够帮助大家对这方面的知识有一个深入的认识。 C++继承方式总共分为以下几种: public、private、protected三种(它们直接影响到派生类的成员、及其对象对基类成员访问的规则)。 (1)public(公有继承):继承时保持基类中各成员属性不变,

hualicuan的专栏 960

【CANoe16安装教程】亲测安装成功

CANoe16安装教程

qq_45302638的博客 2万+

AD20/Altium designer——元器件批量命名与编号的高效技巧

本文详细介绍了在AD20/Altium Designer中实现元器件批量命名与编号的高效技巧。通过解析核心的“原理图标注”功能,从基础全局操作到进阶的按模块分区、利用标识符及合并BOM等智能方法,帮助硬件工程师彻底告别手动编号,大幅提升设计效率与文档规范性,并融入了一套完整的实战工作流。

whisky的博客 568

c++类的继承-疑问

一、当父类的构造函数不是C++默认提供的,则需要在子类的每一个构造函数上使用初始化列表的方式调用父类的构造函数。二、智能指针?三、继承时不指定继承方式四、调用子类的构造函数时,要先调用父类的构造函数,如果没有调用?Child():Parent(NULL)五、二义性六、模版,重载,虚函数。...

u010029439的博客 256

Zemax 中的 LED 阵列模型

这些光线是所有光线的子集,用于布局可视化,而不是详细分析。X 和 Y 散度(αx 和 αy)以度为单位,以不同的方式设置为 6 度和 12 度。每个 LED 都以朗伯模式(广角分布)发光,尽管有些 LED 具有内置光学元件,用于更窄或更聚焦的光束。,具体取决于这些类别中使用的半导体材料。LED 阵列由多个发光二极管 (LED) 组成,这些二极管以特定模式或配置排列,以实现均匀照明、更高强度或特定照明特性。如果数据的存在更改为“辐射强度”,则它以弧度为单位显示每个立体角的功率,作为探测器上入射角的函数。

jkh920184196的博客 1595

C++进阶学习---继承

目录继承继承方式公有继承特点保护继承特点私有继承特点访问控制权限继承演示阻断继承构造析构顺序子类构造子类析构演示多继承多重继承内存布局棱形继承虚继承 继承 继承语法 class 子类名:继承方式1 基类1,继承方式2 基类2…{ … }; 继承方式 公有继承:public 保护继承:protected 私有继承:private 继承方式 基类public成员 基类protected成员 基类private成员 public public protected private

deroy 419

uniapp - 鸿蒙真机运行报错hvigor ERROR: Failed :entry:default@CompileArkTS...,hvigor ERROR: default@CompileAr

uniapp鸿蒙报错> hvigor ERROR: Failed :entry:default@CompileArkTS... hvigor ERROR: default@CompileArkTS watch work[0] failed. 【HarmonyOS】工程编译后报错hvigor ERROR: Failed :entry:default@CompileArkTS,uniAPP鸿蒙开发无法编译运行启动报错,工程编译后报错,运行不起来,删除掉项目entry下的build和.preview缓存文件后重新

🏆 前端领域优质创作者 4791

10天冲刺国自然基金!用这套实战AI提示词指令教程,助你中标率翻倍!亲测DeepSeek和ChatGPT不好用

虽然以上国自然提示词指令经过反复实测,但并不是万能无脑帮你搞定所有,大模型AI的特性是你专业领域能力越强,它的智商表现就会更加强大,通过以上提示词教程的使用,大大提升中标概率是肯定的。还有就是大模型的使用上,不是市面上大家都说好的就一定适用,目前来看,Gemini和Claude的两个模型是非常适合国自然本子的修改的。在使用大模型进行国自然本子撰写修改时,首先是角色的设定,然后是目标和背景的描述,好用的提示词指令都是要经过无数次的实测,比对输出结果后又反复调整,达到最佳的效果状态的提示词指令。

智能AI让学术科研更容易 1246

C++的三种继承方式(本文先不涉及虚继承)

private继承截断了继承的访问通道,下一个孙子派生类将无法访问爷爷基类的public和protected成员,同时关闭了派生类对象直接访问基类public成员的通道。 protected继承则依旧保持了继承访问通道的畅通,但同时也关闭了派生类对象直接访问基类public成员的通道。 派生列表中的访问说明符,对于 派生类中的成员函数和友元函数能否访问 派生类的基类部分的成员,不会产生任何影响。 派生访问说明符,是用于控制派生类用户(包括派生类的派生类在内),对于派生类的基类部分的成员的访问权限。 派生

五月花 1136

Kappa函数:测量一致性并计算置信区间的R语言包

Kappa函数是一种常用的统计量,用于衡量两个评估者之间的一致性。在R语言中,有一个名为"vcd"的包提供了计算Kappa函数以及相应的置信区间的功能。本文将介绍如何使用"vcd"包来计算Kappa函数的值,并进一步计算置信区间。Kappa函数的值介于-1和1之间,值越接近1表示评估者之间的一致性越高,值越接近-1表示评估者之间的一致性越低,值接近0表示评估者之间的一致性接近于随机。通过以上步骤,我们成功地使用R语言中的"vcd"包计算了Kappa函数的值和置信区间。接下来,我们可以使用"vcd"包中的。

2301_79331230的博客 1875

【c++】cpp类的继承

c++类的继承

hutaotaotao的博客 2299

HiCMAE 论文复现:基于 RAVDESS 数据集的音视频情感识别

多模态情感识别是人工智能领域的重要研究方向,旨在通过结合多种感知模态(如音频、视频、文本等)来更准确地识别人类情感状态。与传统单模态方法相比,多模态方法能够利用不同模态间的互补信息,提高情感识别的鲁棒性和准确性。 RAVDESS(Ryerson Audio-Visual Database of Emotional Speech and Song)是一个常用的多模态情感识别数据集,包含24位专业演员(12名男性,12名女性)表达的8种情感状态(中性、平静、快乐、悲伤、愤怒、恐惧、厌恶和惊讶)的音视频数据。

max500600的博客 497

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

继承(CPP)

继承(CPP)

2302_80190394的博客 1668

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【cpp中的继承】

cpp的继承关系,如何使用继承,怎么解决菱形继承

qq_74047688的博客 832

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

CPP类的继承

CPP语法——类的继承

记录知识点的博客 1062

CPP继承

如下示例,Person 类、Student 类、Teacher 类有大量重复的代码,造成代码冗余,降低开发效率。我们可以通过继承来解决这一问题。在面向对象的编程语言中,继承是一个核心概念。主要作用将重复的代码统一定义在父类中,子类从父类继承,同时继承也是实现多态的重要条件。继承就是一个新类从现有类派生的过程。新类称之为派生类或子类,原有的类称之为基类或父类;子类可以继承父类中的成员,从而可以提高代码的可重用性。继承关系下,子类和父类存在 is a 的 关系。

qq_59805046的博客 1121

cpp中的继承

本篇介绍:cpp中的继承与虚拟继承

qq_61847875的博客 900

【CPP】继承语法详解与菱形继承

CPP继承语法,重点讲解了多继承中的菱形继承问题!

BinaryWiker的博客 879

【C++】继承

Person是基类,也可以叫做父类。Student是派生类,也可以称为子类。

GGDxianv的博客 2229

Cpp || 继承

学习继承的基础知识

Template Code 591

cpp三大特性之一继承

继承允许我们在保持原有类特性的基础上进⾏扩展,增加⽅法(成员函数)和属性(成员变量),这样产⽣新的类,称⼦类。继承呈现了⾯向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的函数层次的复⽤,继承是类设计层次的复⽤。把公共的成员都放到Person类中,Student和teacher都继承Person,就可以复⽤这些成员,就不需要重复定义了,省去了很多⿇烦。Person是⽗类,也称作基类。Student是⼦类,也称作派⽣类。(因为翻译的原因,所以既叫⽗类/⼦类,也叫⽗类/⼦类)

2302_80253411的博客 903

【CPP】类与继承

父类,如果当前类的子类是多继承就会影响到子类,将当前类的子类中重复的当前类的父类部分合二为一,所以说虚继承关系到3个具有父子关系的类。发现了吗,平板电脑因为既继承了笔记本电脑,又继承了手机,所以其中包含了两个计算机的特性,这就产生了数据冗余和二义性的问题。在以上的例子中我们称反恐精英为玩家的子类,玩家为反恐精英的父类,反恐精英继承自玩家这个父类。简单来说单继承就是只有一个"继承链"的继承方式,类似于链表,每个类的父节点都是唯一的。标签,所有的底层全都是开放的,导致子类可以很轻松地使用到父类底层的所有东西。

2302_79981653的博客 1429

C++——继承

在C++中,既然将之取名为继承,自然是因为与现实中的继承有某些相似的地方。 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,从而产生一个新的类,称之派生类。 继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。

花想云的博客 1518
上一篇: C++ 多态总结
下一篇: Linux进程总结(上)
Code_zx
博客等级 码龄9年 83粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值