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

关于虚函数表的问题!1

发布网友 发布时间:2023-09-29 21:56

我来回答

2个回答

热心网友 时间:2024-12-14 20:45

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

热心网友 时间:2024-12-14 20:45


首先我们应当清楚:
为了得到正确的虚函数偏移量,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
单机组装6000元预算,INTEL和AMD下不同的配置方案 手上有5000元,想DIY一台台式机,主要是玩大型单机游戏,像孤岛危机2。求... ...及各自优点缺点和如何修改。。 CPU 至强 E3 1230 v2主板 微星Z... 求配家用游戏电脑4000-6000 嘴巴上长水泡怎么办? 嘴巴旁边长了水泡怎么回事 他不回信息的句子 市面上有哪些浪漫又个性的牛仔单品值得入手? 2021年流行什么外套显瘦不挑身材 夏季有哪些百搭又显高级的单品值得选择? c++中关于虚函数的问题 关于虚函数的问题 关于虚函数的问题? 七百字作文以我喜爱的事物为话题。8 苍天觉小说txt全集免费下载 关于虚函数的描述中,正确的是( )?4 作文 难以忘怀的54 男朋友关注前女友,我该怎么做? 以美为话题400字左右的作文127 箫声咽的txt全集下载地址 你好 我想问你一下苹果手机怎么设置可以防止丢失 我想做个预防的准备... 苹果手机怎么防止丢失损失大 神兵玄奇 哪部好看啊 给点意见 出的太多了 不知道看那部好了 电视剧《大汉天子》演的是刘彻吗? ...的化学式为C 6 H 12 O 6 .试计算:(1)葡萄糖的相对 看见身边谈恋爱的人过的比我好的多会产生嫉妒心理,该怎么办3 recovery mode是什么意思?4 孕期补钙的食物有哪些 蔡梵:古代军队是如何打仗的,真有主帅阵前单挑吗 各年龄段的金毛一天吃多少狗粮? C#里关于虚函数和非虚函数 虚函数和普通函数的区别1 ...C6H12O6).葡萄糖中含有___种元素,其相对分子质量是__ ...如图是某药厂生产的葡萄糖注射液的标签,其溶质葡萄糖的化学式... ...葡萄糖的化学式为C 6 H 12 O 6 .试计算:(1)葡萄糖的相 在同一个电脑上登录两个的方法步骤是什么? 金毛一百天有几斤? ...水的白色粉末状固体.请根据葡萄糖的化学式进行以下计算:(1)葡... 神兵玄奇3,最后的结局怎么了,豪杰怎么样了?16 一个怎么在两台电脑同时登陆吗? 医疗健康儿科1 recovery mode是什么意思2 医学生搞儿科专业好不好?听说不好不知哪方面不好?44 你们可以接受老公抖音关注前女友吗? 游戏王机甲卡组厉害吗?他是什么类型的?有前途吗?好像没什么人...5 游戏王 机甲卡组问题11 游戏王机巧卡组1 电容的计算公式是什么 炉石传说战绩查询盒子手机版如何下载 (五位数)(五位数)(七位数)随便填,最后的得数是24678