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

1.引出

如下场景:

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

但是下面的场景:

没有出现报错!!!!

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

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

2.赋值兼容规则

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

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

3.必须是公有继承

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

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

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

相关文章

Python3网络爬虫开发实战(16)分布式爬虫(第一版)

文章目录 一、分布式爬虫原理1.1 分布式爬虫架构1.2 维护爬取队列1.3 怎样来去重1.4 防止中断1.5 架构实现 二、Scrapy-Redis 源码解析2.1 获取源码2.2 爬取队列2.3 去重过滤2.4 调度器 三、Scrapy 分布式实现3.1 准备工作3.2 搭建 Redis 服务器3.3 部署代理池和 Cookies 池3.4…

python画图|中秋到了,尝试画个月亮(球体画法)

学习了一段时间的画图,已经掌握了一些3D图的画法,部分链接如下: python画图|极坐标下的3D surface-CSDN博客 python画图|3D参数化图形输出-CSDN博客 我们今天尝试一下月亮的画法。 【1】官网教程 首先还是到达官网教程学习: …

# 深度学习笔记(6)Hugginface -Transformer

深度学习笔记(6)Hugginface -Transformer 文章目录 深度学习笔记(6)Hugginface -Transformer一、工具包二、 Tokenizer三、 模型加载四、 输出五,padding的作用5.1 attention_mask5.2 不同padding方法 六,数…

基于yolov8+lprnet的中文车牌识别系统python源码+pytorch模型+精美GUI界面

【算法介绍】 基于YOLOv8和LPRNet的中文车牌识别系统是一种高效且准确的解决方案,结合了目标检测与字符识别的先进技术。YOLOv8作为最新的实时目标检测算法,以其高速度和精确度著称,能够迅速在图像或视频中定位车牌位置。LPRNet则是一种专为…

反向传播(Back Propagation,简称BP)

反向传播算法是用于训练神经网络的核心算法之一,它通过计算损失函数(如均方误差或交叉熵)相对于每个权重参数的梯度,来优化神经网络的权重。 1.前向传播(Forward Propagation) 步骤 输入层:接…

孙怡带你深度学习(2)--PyTorch框架认识

文章目录 PyTorch框架认识1. Tensor张量定义与特性创建方式 2. 下载数据集下载测试展现下载内容 3. 创建DataLoader(数据加载器)4. 选择处理器5. 神经网络模型构建模型 6. 训练数据训练集数据测试集数据 7. 提高模型学习率 总结 PyTorch框架认识 PyTorc…

计算机人工智能前沿进展-大语言模型方向-2024-09-13

计算机人工智能前沿进展-大语言模型方向-2024-09-13 1. OneEdit: A Neural-Symbolic Collaboratively Knowledge Editing System Authors: Ningyu Zhang, Zekun Xi, Yujie Luo, Peng Wang, Bozhong Tian, Yunzhi Yao, Jintian Zhang, Shumin Deng, Mengshu Sun, Lei Liang, Z…

基于51单片机的直流数字电流表proteus仿真

地址: https://pan.baidu.com/s/1adZbhgOBvvg0KsCO6_ZiAw 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectro…

高级I/O知识分享【5种IO模型 || select || poll】

博客主页:花果山~程序猿-CSDN博客 文章分栏:Linux_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 一,前文 2&a…

在Unity UI中实现UILineRenderer组件绘制线条

背景介绍 在Unity的UI系统中,绘制线条并不像在3D世界中那样直观(使用Unity自带的LineRender组件在UI中连线并不方便,它在三维中更合适)。没有内置的工具来处理这种需求。如果你希望在UI元素之间绘制连接线(例如在UI上连接不同的图标或控件)&a…

20240918 每日AI必读资讯

o1突发内幕曝光?谷歌8月论文已揭示原理,大模型光有软件不存在护城河 - 谷歌DeepMind一篇发表在8月的论文,揭示原理和o1的工作方式几乎一致 - 谷歌DeepMind这篇论文的题目是:优化LLM测试时计算比扩大模型参数规模更高效。 - Op…

828华为云征文 | 云服务器Flexus X实例:one-api 部署,支持众多大模型

目录 一、one-api 介绍 二、部署 one-api 2.1 拉取镜像 2.2 部署 one-api 三、运行 one-api 3.1 添加规则 3.2 运行 one-api 四、添加大模型 API 4.1 添加大模型 API 五、总结 本文通过 Flexus云服务器X实例 部署 one-api。Flexus云服务器X实例是新一代面向中小企业…

拥控算法BBR入门1

拥塞控制算法只与本地有关 一个TCP会话使用的拥塞控制算法只与本地有关。 两个TCP系统可以在TCP会话的两端使用不同的拥塞控制算法 Bottleneck Bandwidth and Round-trip time Bottleneck 瓶颈 BBR models the network to send as fast as the available bandwidth and is 2…

Java | Leetcode Java题解之第414题第三大的数

题目: 题解: class Solution {public int thirdMax(int[] nums) {Integer a null, b null, c null;for (int num : nums) {if (a null || num > a) {c b;b a;a num;} else if (a > num && (b null || num > b)) {c b;b num;…

驱动器磁盘未格式化危机:专业数据恢复实战指南

认识危机:驱动器中的磁盘未被格式化 在日常的数字生活中,我们时常依赖于各种存储设备来保存重要的文件、照片、视频等数据。然而,当某一天你尝试访问某个驱动器或外接硬盘时,突然弹出的“驱动器中的磁盘未被格式化。您想现在格式…

floodfill+DFS(2)

文章目录 太平洋大西洋流水问题扫雷游戏迷路的机器人 太平洋大西洋流水问题 class Solution { public:vector<vector<int>> res;int m 0, n 0;vector<vector<int>> pacificAtlantic(vector<vector<int>>& heights) {m heights.size…

iOS 18 正式上線,但 Apple Intelligence 還要再等一下

在 iPhone 16 即將正式開賣之際&#xff0c;Apple 如約上線了 iOS 18。雖然今年的重頭戲 Apple Intelligence 還要等下月的 iOS 18.1 才會有&#xff0c;但自訂主畫面和全新的鎖定頁面、控制中心等特性已可在最新的版本中體驗。除此之外&#xff0c;相簿、訊息、地圖、Safari 等…

React学习day07-ReactRouter-抽象路由模块、路由导航、路由导航传参、嵌套路由、默认二级路由的设置、两种路由模式

14、ReactRouter续 &#xff08;2&#xff09;抽象路由模块 1&#xff09;新建page文件夹&#xff0c;存放组件 组件内容&#xff1a; 2&#xff09;新建router文件夹&#xff0c;在其下创建实例 3&#xff09;实例导入&#xff0c;使用 4&#xff09;效果 &#xff08;3&…

佛山网站制作与设计

佛山网站制作与设计 在当今数字化时代&#xff0c;网站已成为企业展示形象、推广产品和服务的重要窗口。佛山作为一个经济迅速发展的城市&#xff0c;其网站制作与设计也日益受到重视。优质的网站不仅能提升企业的品牌形象&#xff0c;更是实现商业价值的重要工具。 一、网站制…

cout无法正常显示中文

cout无法正常显示中文 虽然你使用了buf.length()来指定写入的字节数&#xff0c;但是在包含中文字符&#xff08;UTF-8编码下每个中文字符占用3个字节&#xff09;的情况下&#xff0c;直接使用length()可能不会正确反映实际的字节数&#xff0c;因为它给出的是字符数而非字节…