C++学习——继承(1)

news2025/1/31 13:47:56

目录

一,继承是什么?

二,继承的权限

三,继承赋值兼容规则

四,继承中的作用域


一,继承是什么?

     我们说面向对象的语言有三大特性:1.封装,2,继承,3,多态。这里的继承便是面向对象的语言的三大特性之一。继承也像我们在日常生活中所理解的那样,继承便是儿子继承父亲的遗产然后自己用。

二,继承的权限

在C++语言中,我们有三大权限:1.private 2.protected 3.public。相信大家都知道这三大权限。继承也有三大权限,也是这三个权限。所以子类继承父类的对象的权限组合就会有九种。这九种组合如下:

虽然说这里有九种组合,但是我们的子类对象里继承父类的成员对象的权限只会有四种情况:

1.当父类中的权限是private时,子类中只会继承这个数据但是在子类中的这个成员或方法是不可见的。

2.当子类以private的权限来继承父类的成员或者方法时在子类中的该成员或者方法的权限也是private。在子类中可以访问继承而来的成员或者方法。

3.其它情况下,子类中继承而来的对象或者方法的权限大小取继承权限和父类中的对象或者方法权限的较小值。

如:

class parent
{
public :


protected://父类中的成员权限为protected
	int a;
	int b;
	int c;
};

class child :public parent//继承权限为public
{
public:
	int d;
};

那么在子类中继承而来的父类成员权限就是min(public,protected) = protected。

三,继承赋值兼容规则

在这里我们要知道的便是:

1.子类对象可以赋值给父类对象但是父类对象不能赋值给子类对象 。 

2.子类对象引用父类对象不需要加上const也可以引用

首先来解释第一个:

1.能得到第一个结论是因为子类对象一般都是大于或者等于父类对象的大小的,所以当我们用子类对象给父类对象赋值时子类对象里的成员个数是足够的,但是父类对象要赋值给子类对象的话成员的个数大概率是不够的。

2.我们都知道,当两个对象的类型不一样时比如一个int 型的对象a和double型的对象b:

在两者中间会生成一个叫做临时对象的东西来讲double类型的b改为int型然后再赋值给a。并且因为这个临时对象具有常性所以我们在使用引用时就要加上const才能引用:

但是对于具有继承关系的两个类型的对象我们便可以不用加上const,我们可以直接引用:

能实现这一点是因为在继承中有一个叫做《父子兼容规则》的设计让具有父子关系的两个对象在赋值时在中间不会产生一个临时对象。

四,继承中的作用域

1. 在继承关系中如果在父类与子类中的成员中如果有重名的在子类中会默认使用谁的呢?答案当然是要使用子类自己的。父类中的对象其实会被子类给隐藏掉,然后我们便只能使用子类自己的成员了。

2.在继承中如果子类与父类中的函数名相同相同参数不同能不能构成重载呢?答案是不能,因为构成重载的前提是在同一个作用域内。所以当父类与子类中的函数重名时父类中的函数在子类中也会被隐藏。

3.当父类与子类中都写了析构函数的话,即使这两个析构函数的名字是不一样的这两个析构函数在被编译以后也会拥有同一个名字叫做destroctor。也会构成隐藏关系。要使用的话就得显示使用:parent::~parent()。但是编译器其实会为我们主动调用父类的析构函数,所以我们只需要使用子类的析构函数便可以了。

4.父类成员的构造必须显示的调用父类的构造函数来实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1094116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙tabbar ArkTS

鸿蒙tabbar ArkTS 做了仿照现在应用的做了一个tabbar。 官方文档地址 参考文档 tabbar 其中有个比较重要的点是,对image资源的引用问题。 资源相关说明 图片是resources目录下的base目录下的。 media目录下的图片的资源不能添加文件夹,只能是文件&a…

【Spring框架】Spring监听器的源码分析

目录 一、Spring监听器模型 二、源码分析 2.1 initApplicationEventMulticaster():事件广播器的初始化 2.1.1 Spring默认的事件广播器SimpleApplicationEventMulticaste 2.2 registerListeners():注册事件监听器 2.3 finishRefresh():完…

京东店铺所有商品数据接口,京东整店所有商品数据接口,京东店铺商品接口,京东API接口

京东店铺所有商品数据接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取京东整店的商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、价格信息等详细信息。 京东店铺所有商品数据接口可以用于不同的业务场景,…

【HHO-KELM预测】基于哈里斯鹰算法优化核极限学习机回归预测研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

博图数值按照特定格式(“T000000”)转换成字符串

一、前言 数值按照协议格式,转成字符串。方便和第三方厂家对接。如码垛线使用字符串数据,立库厂家使用dint数据类型,上位机使用DINT数据类型,为了判断数据传输、与动作流程,需要条码的比较,此时可以将数值转…

Kotlin vs Java:为什么Springboot官方教程选择了Kotlin?

导语 作为Java开发者的你,是否在为寻找Java的替代品而烦恼?担心受知识产权问题困扰?别担心,Kotlin来了!它是你的救星,也是Springboot官网教程的选择。想知道为什么吗?那就往下翻吧!…

“通胀噩梦:恶梦继续还是即将终结?经济前景备受关注!“

尽管美联储采取了激进的利率策略,昨天公布的 9 月份 CPI 数据显示,整体同比增长 3.7%,而预期为 3.6%,高于预期。环比预期,为 0.4%,而预期为 0.3%。核心 CPI 环比上涨 0.3%,同比上涨 4.1%&#x…

极限号可以拿到函数的内部吗?【复合函数中极限的进入】

极限号无脑直接拿进来 1.1 如果f(极限值)在该点连续,ojbk,拿进来。 1.2 如果f(极限值)不存在或不连续,不能拿进来,出去。

Flask (Jinja2) 服务端模板注入漏洞复现

文章目录 Flask (Jinja2) 服务端模板注入漏洞1.1 漏洞描述1.2 漏洞原理1.3 漏洞危害1.4 漏洞复现1.4.1 漏洞利用 1.5 漏洞防御 Flask (Jinja2) 服务端模板注入漏洞 1.1 漏洞描述 说明内容漏洞编号漏洞名称Flask (Jinja2) 服务端模板注入漏洞漏洞评级高危影响版本使用Flask框架…

【剑指Offer】27.二叉树的镜像

题目 操作给定的二叉树,将其变换为源二叉树的镜像。 数据范围:二叉树的节点数 0≤n≤1000 , 二叉树每个节点的值 0≤val≤1000 要求: 空间复杂度 O(n) 。本题也有原地操作,即空间复杂度O(1) 的解法,时间…

Servlet--Request请求对象

1.请求对象的概述 请求:获取资源。在BS架构中,就是客户端浏览器向服务器端发出询问 请求对象:就是在项目当中用于发送请求的对象 2.获取各种路径的方法 返回值方法名说明StringgetContextPath()获取虚拟目录名称StringgetServletPath()获…

C++前缀和算法:构造乘积矩阵

题目 给你一个下标从 0 开始、大小为 n * m 的二维整数矩阵 grid ,定义一个下标从 0 开始、大小为 n * m 的的二维矩阵 p。如果满足以下条件,则称 p 为 grid 的 乘积矩阵 : 对于每个元素 p[i][j] ,它的值等于除了 grid[i][j] 外所…

Django使用Token认证(simplejwt库的配置)

目录 官网文档安装项目配置拓展配置 官网文档 https://django-rest-framework-simplejwt.readthedocs.io/en/latest/ 安装 pip install djangorestframework-simplejwt项目配置 REST_FRAMEWORK {...DEFAULT_AUTHENTICATION_CLASSES: (...rest_framework_simplejwt.authent…

【斗破年番】彩鳞换装美翻,雁落天惨死,萧炎暗杀慕兰三老遇险,彩鳞霸气护夫

Hello,小伙伴们,我是小郑继续为大家深度解析斗破苍穹年番资讯。 斗破苍穹动画已经更新了,小医仙与萧炎相认,三国联军撤退,随后彩鳞与萧炎以及小医仙夜晚相会,一起制定了刺杀行动。从官方公布的第68集预告,彩…

ST‐LINK V2 使用说明(安装,调试,烧录)

目录 1. 初识 ST-LINK V2 1.1 ST-LINK V2 简介 2. ST-LINK V2 驱动的安装与固件升级 2.1 驱动的安装 2.2 固件的升级 3. 使用 STM32 ST-LINK Utility 烧写目标板 hex 3.1 ST-LINK 烧写 hex 文件 4.使用 ST-LINK V2 调试 STM8 4.1 ST‐LINK 调试 STM8 5.…

【GA-ACO-RFR预测】基于混合遗传算法-蚁群算法优化随机森林回归预测研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

时序分解 | Matlab实现EEMD集合经验模态分解时间序列信号分解

时序分解 | Matlab实现EEMD集合经验模态分解时间序列信号分解 目录 时序分解 | Matlab实现EEMD集合经验模态分解时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现EEMD集合经验模态分解时间序列信号分解 1.分解效果图 ,效果如图所示&…

4.1 继承性

知识回顾 (1)类和对象的理解? 对象是现实世界中的一个实体,如一个人、一辆汽车。一个对象一般具有两方面的特征,状态和行为。状态用来描述对象的静态特征,行为用来描述对象的动态特征。 类是具有相似特征…

前端TypeScript学习day04-交叉类型与泛型

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 交叉类型 泛型 创建泛型函数 调用泛型函数: 简化调用泛型函数: 泛型约束 指定…

为什么在华为DSTE战略管理中,需要三次战略解码?

添加图片注释,不超过 140 字(可选) 【导语:在战略管理课程中,不少同学对“战略解码”这个术语有诸多疑惑。谢宁老师认为如果同学们详细阅读谢宁专著《华为战略管理法:DSTE实战体系》关于“三次战略解码”的…