c++基类和派生类对象的赋值转换——赋值兼容规则

1.引出

如下场景:

由于b是double类型,所以赋值给int类型的引用前,要先进行隐式类型转换,这中间会生成临时对象,类是对象具有常性,所以int&之前应该加上const。

但是下面的场景:

没有出现报错!!!!

难道是没有产生临时对象吗?不是的。

c++规定,对于公有继承,父类和子类是个is-a的关系,将子类对象赋值给父类对象/指针/引用时,我们认为是天然的,中间不产生临时对象,这叫做父子类赋值兼容规则

2.赋值兼容规则

1.公有有继承中,派生类对象可以赋值给基类对象/指针/引用。形象的说法叫做切割或切片,就是将派生类中父类的那一部分切过去。

2.基类对象不能赋值给派生类对象

3.必须是公有继承

如上,当把public去掉后,就出错了。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt进程通信,不推荐使用QSharedMemory和QLocalSocket,而是推荐ZMQ

一、据一位资深的网友说QLocalSocket有问题,共享内存QSharedMemory也有,比如存在多线程问题,不灵活,丢数据等问题都有,而且还占资源。血的教训。后来换成了zmqprotobuf。ZMQ进程内,进程间,机器间…

电脑文件怎么加密?文件加密方法介绍

随着数字化时代的到来,电脑文件的安全性问题日益凸显。为了保护个人隐私和企业数据,文件加密成为了一项重要的安全措施。本文将详细介绍几种常见的电脑文件加密方法,帮助你更好地保护自己的数据安全。 超级加密3000 超级加密3000提供了两种主…

F110批量付款如何Debug BTE增强(后台JOB的调试方法)

F110批量付款如何Debug BTE增强(后台JOB的调试方法) SAP系统中的F110(Automatic Payment)是一个常用的付款程序,在实施过程中,也经常会遇到一些运行的错误,而对于此类的错误,通常的…

网络分析仪仪器校准要怎么进行检测?容易出现哪些误差?

当我们使用矢量网络分析仪时,会发现测量数据存在误差。要纠正它,首先要知道矢量网络分析仪的误差来源是什么。 主要有三个方面:漂移误差、随机误差、系统误差。 一、 漂移误差:是由于仪器或测试系统仪器校准之后性能发生变化引起的,主要是温…

uni-app和Node.js使用uni-push2.0实现通知栏消息推送功能

前言 uniapp 提供了 unipush 统一推送服务,但是每次要推送消息的时候都要登陆 Dcloud 开发者后台,有点不方便,运营需要在我们的后台系统就可以完成操作。 效果演示 消息下发流程 名词解释 名词解释通知消息指定通知标题和内容后,由个推 SD…

【STM32】OLED

OLED显示原理 OLED使用的是I2C协议,使用ssd1306芯片对所有灯进行控制,如果一个灯需要一个引脚的话,屏幕分为8页,每页有128列,8行 . 共有128* 88个灯 这样引脚是算不过来的,所以我们使用了ssd1306芯片&…

【深度学习】【图像分类】【OnnxRuntime】【C++】ResNet模型部署

【深度学习】【图像分类】【OnnxRuntime】【C】ResNet模型部署 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【图像分类】【OnnxRuntime】【C】ResNet模型部署前言模型转换--pytorch转onnxWindows平台搭建依赖环境ONNXRuntime推…

搜索功能技术方案

1. 背景与需求分析 门户平台需要实现对服务信息的高效查询,包括通过关键字搜索服务以及基于地理位置进行服务搜索。面对未来可能的数据增长和性能需求,选择使用 Elasticsearch 来替代 MySQL 的全文检索功能。这一选择的背景与需求可以总结为以下几点&am…

maven简介

1, 结构化管理项目 如果不用maven,研发拿到一个项目要去查看代码,了解其代码结构,了解其依赖文件,jar包位置,图片等文件存储路径等;而maven是规范地将对应的源代码、依赖文件等定义其固定位置&…

[数据集][目标检测]电动车入梯进电梯电单车入梯检测数据集VOC+YOLO格式7106张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):7106 标注数量(xml文件个数):7106 标注数量(txt文件个数):7106 标注…

[环境配置]ubuntu20.04安装后wifi有图标但是搜不到热点解决方法

最近刚入手一台主机,暗影精灵8plus电竞主机,安装ubuntu后wifi怎么都搜不到热点,前后重装系统6次才算解决问题。这个心酸历程只有搞技术人才明白。下面介绍我解决过程。 首先主机到手后是个windows10系统,我用无线网连接了一下&am…

Java发邮件:如何配置SMTP服务器实现发信?

Java发邮件功能实现的教程?Java发邮件的方式有哪些? 无论是用于用户注册确认、密码重置,还是系统通知,Java发邮件都是不可或缺的一部分。AokSend将详细介绍如何配置SMTP服务器,以便在Java发邮件时能够顺利发送邮件。 …

Ozon数据插件,Ozon数据插件好用吗

在跨境电商的浩瀚星海中,每一位卖家都像是航行者,不断探索着市场的奥秘与机遇。而在这个过程中,一款高效、精准的数据分析工具,无疑是每位船长手中的罗盘与望远镜。今天,我们就来深入探讨一款备受瞩目的跨境电商辅助神…

可提示 3D 分割研究里程碑!SAM2Point:SAM2加持泛化任意3D场景、任意提示!

郑重声明:本解读已获得论文作者的原创解读授权 文章链接:https://arxiv.org/pdf/2408.16768 在线demo: https://huggingface.co/spaces/ZiyuG/SAM2Point code链接:https://github.com/ZiyuGuo99/SAM2Point 亮点直击 无投影 3D 分割&#xff1…

安装Anaconda(过程)

Anaconda是一个开源的Python发行版本,用来管理Python相关的包,安装Anaconda可以很方便的切换不同的环境,使用不同的深度学习框架开发项目,本文将详细介绍Anaconda的安装。 一、安装 1、安装方式 官网:“https://www.…

maya-vray渲染蒙版

要用一个叫vrayMulWrapper的材质球,把alpha Conterbution调到-1,勾选matte surface启用蒙版物体。

Xshell在password登录时弹出public key登录验证,设置修改方法

1、cloudpods创建虚拟机 2、XShell连接虚拟机 这里点击连接之后出现了下面页面: 3、原因 /etc/ssh/sshd_config.d 这个目录有配置文件默认配置中 “PasswordAuthentication no”导致连不上了 4、解决办法 点击下面截图中的序号1,进入虚拟机内部&…

(java+Seleniums3)自动化测试实战2

1.环境问题点 此时,可以成功打开浏览器 此时,selenium可以控制浏览器 get--就是访问的意思 将驱动复制在当前项目之下 复制驱动的路径 2.基本元素定位 使用id来定位: 使用Name来定位: 成功: 使用id是唯一的&#xff0c…

AI产品经理:2024年职场发展的新机遇

前言 这两年,AI 骤然“火”了起来,可谓出现了重大“转折”。就在这短短两年间,全球各大“大厂”几乎在同一时间争先恐后地跟进 AI 技术。从 ChatGPT 发布起,谷歌、Facebook、亚马逊等纷纷紧跟其后,国内的百度、腾讯、…