当前位置: 首页 > news >正文

多态的原理

 

 有了虚函数,会在类的对象增加一个指针,该指针就是虚函数表指针_vfptr;虚表本质就是函数指针数组,虚表里面存放着该对象的虚函数的地址

派生类继承有虚函数基类的对象模型

子类继承父类的虚表指针时,是对父类的虚表指针进行了拷贝。二者指向两张不同的表。子类没有重写父类的虚函数时候,子类的虚函数表和父类是完全一样的。

如果子类重写了基类中某个虚函数,用派生类自己的虚函数地址覆盖虚表中的基类的虚函数地址。

派生类自己新增的虚函数按其在派生类中的声明次序增加到派生类虚表的最后。

多态的原理:基类的指针或者引用指向谁就去用谁的虚函数表找到对应的虚函数进行调用。

问题一:同一个类的不同对象的虚函数指针是否一样?虚函数表是否一样?

是一样的。它们的对象的虚函数指针都指向同一个虚表;虚函数指针都是一样的

问题二:虚表在哪个阶段生成虚表存放在哪?

虚函数我们知道存放在虚表,但是虚表存放在哪呢?其实存放在字符常量区。虚表在编译阶段就形成了。

注意:在C++中,内置类型的地址大小是相同的,无论在32位操作系统还是64位操作系统上都是如此.内置类型包括int、double、float、char、bool等常见的基本数据类型,它们的大小在不同的编译器和操作系统下可能略有不同,但它们的地址大小始终相同,通常是4个字节或8个字节.

在32位操作系统上,内置类型的地址通常是32位,也就是4个字节.而在64位操作系统上,内置类型的地址通常是64位(8个字节).这意味着在64位操作系统上,每个指针可以表示的内存地址范围比32位操作系统更大,因此可以更高效地操作大型数据结构.

相关文章:

多态的原理

有了虚函数,会在类的对象增加一个指针,该指针就是虚函数表指针_vfptr;虚表本质就是函数指针数组,虚表里面存放着该对象的虚函数的地址; 派生类继承有虚函数基类的对象模型 子类继承父类的虚表指针时,是对父类的虚表指针进行了拷…...

RK3588平台开发系列讲解(内存篇)Linux 伙伴系统数据结构

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、 页二、区三、内存节点沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux 系统中,用来管理物理内存页面的伙伴系统,以及负责分配比页更小的内存对象的 SLAB 分配器了。 本篇将介绍伙伴系统相关数据结…...

Windows(MFC/C++)上进程间通讯的几种简单又实用的方法

前段时间,做了一个项目,涉及数据传输。项目实现方式有很多种,但不同的实现方式,对数据的传输方法不同,且各有优缺点。 下文就不同情况来如何选择数据传输(通讯)方式。 先说说需求,模块A获取测试数据&#…...

嘉兴桐乡会计考证培训-备考中级职称有必要报班吗?

备考中级会计职称有必要报班吗?其实,备考报班不能说是必需的,但听课学习确实是节省时间的一种方式,根据同学们的反馈,自学所花费的时间远远多于跟着老师学。上元教育就整理了一些学员报班之前走过的弯路 报班之前 在2…...

java元注解和自定义注解的区别

Java的元注解和自定义注解是两个不同的概念。 元注解是Java内置的一组用于修饰其他注解的注解,包括Retention、Target、Inherited和Documented。它们可以控制被修饰的注解的保留策略、目标范围、是否继承等属性,并且可以在编写自定义注解时使用。 Retent…...

技术到底是什么

背景 我发了朋友圈:做了个奇怪的梦,梦见被离职了,理由竟然是:你技术太菜了 我补充评论:我还没想明白怎么回事,就醒了。有点遗憾的是:想再努力反驳两句,结果没机会了… 很多人评论…...

什么CRM客户管理系统最好?

产业互联网背景下,企业数字化转型日渐深化。毋庸置疑,客户是企业的命脉,企业发展的关键便是以客户为中心,为客户创造价值,并不断实现企业的可持续性增长,而这也是每个企业永不落幕的主题。 一套优秀的CRM客…...

吴军《计算之魂》读后感

前言 断断续续,终于完成了这本书的第一次通读,记录下自己的一些想法。 先说一个小故事。前段时间家里买了一个小鱼缸,问我有没有办法让水自动循环,但不想用电。没有好的想法,去小某书上搜了下,好多案例教…...

CSS进阶

01-复合选择器 定义:由两个或多个基础选择器,通过不同的方式组合而成。 作用:更准确、更高效的选择目标元素(标签)。 后代选择器 后代选择器:选中某元素的后代元素。 选择器写法:父选择器 …...

金兰组织 | 2023金兰解决方案集经营管理篇正式发布

为助力企业创新管理、提质增效,人大金仓携手金兰组织成员单位,于近期发布多项经营管理领域的联合解决方案,共享创新应用成果。 /人大金仓高级副总裁宋瑞/ 人大金仓高级副总裁宋瑞在致辞中表示:“联合解决方案创新是指通过把不同领…...

【python】pytorch包:深度学习(序章)

今日听闻师姐说pytorch实现深度学习要比keras更好用一些,特此记录 Part 0. 机器学习 与 深度学习 的联系与区别 参考B站视频链接 联系 深度学习是机器学习的分支,人工神经网络为基础,对数据的特征进行学习的方法 区别 特征抽取 机器学…...

HTML <acronym> 标签

HTML5 中不支持 <acronym> 标签在 HTML 4 中用于定义首字母缩写词。 实例 标记一个首字母缩写&#xff1a; <acronym title"World Wide Web">WWW</acronym> 浏览器支持 IEFirefoxChromeSafariOpera 所有主流的浏览器均支持 <acronym> …...

python基本数据类型 - 字典集合

引入 在内存中存储的数据可以是不同的数据类型。比如名字可以使用字符串存储&#xff0c;年龄可以使用数字存储&#xff0c;python有6种基本数据类型&#xff0c;用于各种数据的存储&#xff0c;分别是&#xff1a;numbers(数字类型)、string(字符串)、List(列表)、Tuple(元组…...

python数据类型总结

标准数据类型 Python 有以下几种标准数据类型&#xff1a; 整数&#xff08;int&#xff09;&#xff1a;表示整数值&#xff0c;如 1, -5, 0 等。浮点数&#xff08;float&#xff09;&#xff1a;表示小数值&#xff0c;如 3.14, -0.01, 1.0 等。字符串&#xff08;str&…...

TS内置类型总结

typeof 取对象身上的类型 const person {name: ,job: ,age:18 } type p typeof person ->> type p {name: string;job: string;age: number; }keyof取一个类型的属性明作为一个联合类型 const person {name: ,job: ,age: 18 } type p typeof person type k keyof p…...

Spring Cloud Alibaba: Gateway 网关过滤器 GatewayGatewayFilter factory (记录)

目录 AddRequestHeader GatewayFilter factory AddRequestHeadersIfNotPresent GatewayFilter factory AddRequestParameter GatewayFilter Factory AddResponseHeader GatewayFilter Factory CircuitBreaker GatewayFilter factory circuit breaker based on the status…...

Windows Server 2016版本说明

Windows Server 2016 Essentials edition Windows Server 2016 Essentials版是专为小型企业而设计的。它对应于Windows Server的早期版本中的Windows Small Business Server。此版本最多可容纳25个用户和50台设备。它支持两个处理器内核和高达64GB的RAM。它不支持Windows Serve…...

车载红外夜视「升温」

红外夜视赛道&#xff0c;正在升温。 本周&#xff0c;全球车载后视镜头部供应商Gentex宣布&#xff0c;领投以色列热成像技术初创公司ADASKY&#xff0c;后者在B轮融资中拿到了3000万美元。按照计划&#xff0c;Gentex将协助ADASKY将红外夜视技术推向汽车市场。 事实上&#x…...

ext3 文件系统的特点、优缺点以及使用场景

ext3&#xff08;Third Extended File System&#xff09;是 ext2 文件系统的后续版本&#xff0c;它在 ext2 文件系统的基础上增加了日志功能&#xff0c;以提高文件系统的可靠性和稳定性。下面是 ext3 文件系统的特点、优缺点以及使用场景&#xff1a; 特点&#xff1a; ext…...

rk3568 修改开机logo

rk3568 修改开机显示logo Android 显示 logo 的作用是为了标识应用程序或设备的品牌和身份。在应用程序中&#xff0c;logo 可以帮助用户快速识别应用程序&#xff0c;并与其他应用程序区分开来。在设备中&#xff0c;logo 可以帮助用户识别设备的品牌和型号&#xff0c;以及与…...

SEO 搜索引擎公司如何提高网站的流量

SEO 搜索引擎公司如何提高网站的流量 在当今互联网时代&#xff0c;网站的流量直接影响着企业的品牌知名度和市场竞争力。对于许多企业来说&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;成为了提升网站流量的关键途径。SEO 搜索引擎公司究竟如何有效提高网站的流量呢&…...

SEO 项目如何进行链接建设_SEO 项目如何进行品牌形象优化

SEO 项目如何进行链接建设_SEO 项目如何进行品牌形象优化 SEO 项目如何进行链接建设 在当今的互联网时代&#xff0c;网站的流量和排名直接关系到企业的发展和市场竞争力。其中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;是提升网站在搜索引擎中的排名的重要手段。…...

从零到一:使用blog_demos构建企业级Flink流处理应用的完整指南

从零到一&#xff1a;使用blog_demos构建企业级Flink流处理应用的完整指南 【免费下载链接】blog_demos CSDN博客专家程序员欣宸的github&#xff0c;这里有六百多篇原创文章的详细分类和汇总&#xff0c;以及对应的源码&#xff0c;内容涉及Java、Docker、Kubernetes、DevOPS等…...

WTF, forms? CSS原理大揭秘:如何用纯CSS打造自定义表单控件

WTF, forms? CSS原理大揭秘&#xff1a;如何用纯CSS打造自定义表单控件 【免费下载链接】wtf-forms Friendlier HTML form controls with a little CSS magic. 项目地址: https://gitcode.com/gh_mirrors/wt/wtf-forms WTF, forms? 是一个通过纯CSS魔法打造友好HTML表…...

seo网上教程有哪些常见错误

SEO网上教程有哪些常见错误 在互联网时代&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经成为网站流量和排名提升的关键因素。很多人在学习SEO过程中&#xff0c;常常会遇到一些误区&#xff0c;甚至在网上找到的一些教程中也包含了不少错误。本文将详细介绍一些常见…...

SEO_掌握这5个SEO技巧,让流量持续增长

SEO技巧&#xff1a;让你的网站流量持续增长的5个关键策略 在当今数字化时代&#xff0c;网站流量的稳定增长对于企业的成功至关重要。搜索引擎优化&#xff08;SEO&#xff09;是提高网站流量的核心手段之一。掌握一些关键的SEO技巧&#xff0c;不仅可以帮助你在搜索结果中获…...

OpenClaw+千问3.5-9B数据清洗:Excel表格异常值检测与修复

OpenClaw千问3.5-9B数据清洗&#xff1a;Excel表格异常值检测与修复 1. 为什么需要AI辅助数据清洗&#xff1f; 上周处理一份客户调研数据时&#xff0c;我遇到了典型的数据清洗难题——表格里混杂着空值、格式混乱的日期、重复记录和错误拼写。手动处理不仅耗时&#xff0c;…...

基于MATLAB与SVM实现河道水面漂浮物的自动检测与识别

摘要&#xff1a;河道水面漂浮物不仅影响水环境质量&#xff0c;还威胁水利设施安全和水生态健康。传统人工巡检方式效率低、成本高&#xff0c;难以满足大范围、实时化的 监测需求。针对上述问题&#xff0c;本文基于 MATLAB 平台&#xff0c;结合支持向量机&#xff08;SVM&a…...

如何用嘎嘎降AI处理文献综述部分:综述专项降AI教程

如何用嘎嘎降AI处理文献综述部分&#xff1a;综述专项降AI教程 这篇教程来自实操经验。帮三个同学处理过论文AI率&#xff0c;加上自己的&#xff0c;前后操作了十几次。把流程总结成教程&#xff0c;尽量详细。 核心工具推荐嘎嘎降AI&#xff08;www.aigcleaner.com&#xf…...

[具身智能-229]:OpenCV 的 DNN (Deep Neural Networks) 模块,可以直接加载和运行,通过PyTorch AI框架训练好的模型,而不需要安装PyTorch AI框架

OpenCV 的 DNN (Deep Neural Networks) 模块确实是工业界和边缘计算领域非常推崇的推理引擎。它的核心定位不是“训练模型”&#xff0c;而是“让训练好的模型跑得更快、更轻、更通用”。它允许开发者在不依赖庞大的 TensorFlow 或 PyTorch 库的情况下&#xff0c;直接在生产环…...