问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于虚函数表的问题!

发布网友 发布时间:2022-05-01 04:31

我来回答

2个回答

热心网友 时间:2022-06-24 11:14

因为b和a的对象数据前都一样有一个虚函数表的指针,这里就都是4个字节(32位),于是a对象还有一个int i,就成了8个字节了,b对象里除了继承来的i外,还有自己的j,都是int,当然是12了,
注意对象中都只是存放虚函数表的指针

热心网友 时间:2022-06-24 11:15


首先我们应当清楚:
为了得到正确的虚函数偏移量,C++编译器要将虚函数表的指针存在于对象实例中最前面的位置。
还有多层指针要从右往左一层一层拨剥开

问题一:当然不一样,首先p本身是一指针类型,是一种简单类型,*&p:先得到p在物理内存中的地址,再取出该地址中的数据,这个数据依然是指针类型,例如:p的物理地址是0x10,而0x10所在位置存的是0x20,那么输出就是0x20,而0x20依然是个地址。p:过程是相同的,只是写起来比较简单。

其次b是一对象类型,是非简单类型,插入符“<<”无法识别,除非你写一个重载该运算符的函数
&b是取出对象的地址,(int*)(&b)是将该地址转换为整形指针,就是对象虚表数组的首地址,*(int*)(&b)是将取出虚表数组的第一项,就是第一个虚函数的首地址,(int*)*(int*)(&b)就是将该地址转换为整形指针。

问题二:void*不是一个指向对象类型的指针(int*,long*都是),所以你向他取东西肯定是不行的,例如:void* p = NULL;
cout << *p << endl;
就不可以;

问题三:你这个之所以可以 是因为,你的函数碰巧没有参数,如果有的话,就不行了,编译器会说类似 从void()()转换成void()(char*)失败。
而Fun* 类型正好定义了参数序列。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抗击疫情祝福语简短 疫情早日结束愿大家平安(精选76句) 新肺炎防范祝福语 2024年为武汉加油的朋友圈祝福语暖心句子 qq对对碰为什么在QQ游戏客户端页面没有QQ对对碰游戏 关于山地车骑行装备 烧心反酸吃什么药缓解 反胃酸烧心吃什么药 我第第因为喜欢一位女孩不和他谈拉受刺激神经错乱厌世厌学 怎么办 精神错乱你了解了吗 溯洄从之道阻且长什么意思 c普通函数放在内存的什么区域,通过什么调用?类中有一个指向虚函数表的指针,通过虚函数表获得虚函数地 c++的对象如果类中有虚函数的话,不是有虚函数表的指针在对象的内存结构中吗 “宋势黑帮”是怎么回事,在郑州,如何避免这样的黑恶势力在别的地方重新上演? 一个关于C++虚函数表的问题(求高手解释) 武夷山的正山小种红茶第一次被荷兰商人带到英国是什么时间? Gpp外汇是国内还是国外的投资平台? (c++内存布局)问题:编译器会为实例的方法分配内存吗? 国内有没有可以海外的外汇投资平台? C++标准中,虚表指针在类的内存结构位置没有规定 魔方如何设置关闭不用的服务 派生类有自己的虚函数表吗? 谁知道 C++ 中 虚函数的工作机制??? 名侦探柯南有哪9部剧场版 《名侦探柯南》的400多集的题目,和经典台词,和你的看法。 C++:虚函数在内存中占用的字节,求详细解答,谢谢! 关于虚函数,是怎样存在于内存中的?占用内存空间是怎样的? 魔方优化大师优化设置系统用户名密码没法登陆!!! 王之财宝的相关宝具 王之财宝有哪些宝具 怎样用魔方优化大师优化桌面 来去掉桌面图标箭头 有人的微信昵称是30是什么意思t? 谁知道深圳东门步行街的东北人恶势力,黑社会名单及头领吗? scottrade交易的原理是什么,在美股中境外投资通过类似平台是合法的吗?反之国内A股有无类似平台给境外 南昌新建区宋佐强黑恶势力人员有哪些? 企业雇佣协保人员10多年,在未到退休年龄而辞退他,有经济补偿吗? 解释加点词的意思:阡陌交通的交通,无论魏晋的无论,便要还家的要,后遂无问津者 大年三十微信怎么上不起? 葡萄牙语中的“我爱你”怎么说???急~! 我爱你用葡萄牙语怎么说谐音 微信支付*30天,不在为我提供任何服务,余额里的钱能提出来吗 谁知道葡萄牙语的我爱你怎么说?怎么写? 阅读。  见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先 我明年退休是协保人员,可以拿多少工资,五 韩语,法语,葡萄牙语,西班牙语怎么说“我喜欢你”和“我爱你”? c++中类中的函数与数据的内存的关系。请说详细点 我想知道葡萄牙语的我爱你怎麼说 办理协保人员到退休年龄后怎样计算退休工资? c++虚函数表在运行时候是如何存在的 协保人员退休养老金怎样计算 葡萄牙语我爱你怎么说.