腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
搜索
关闭
文章
问答
(401)
视频
开发者手册
清单
用户
专栏
沙龙
全部问答
原创问答
Stack Exchange问答
更多筛选
回答情况:
全部
有回答
回答已采纳
提问时间:
不限
一周内
一月内
三月内
一年内
问题标签:
未找到与 相关的标签
筛选
重置
3
回答
vptr
解析
class base { virtual void fn(){}我知道编译器在类中提供了一个名为
VPTR
的成员,我有两个问题2)当执行语句der d;时,
VPTR
是如何在运行时解析的?
浏览 4
修改于2011-09-29
得票数 2
8
回答
vptr
-虚拟表
对于我声明的每个类,都有一个隐藏的
vptr
成员指向类虚拟表。假设我有这样的声明:{ virtual void foo();}base* basic = new
浏览 1
修改于2009-12-02
得票数 3
回答已采纳
2
回答
计算
vptr
字段
我有几个类,我试图了解
vptr
和vtable在这种情况下是如何工作的。AbstractImage* A = new ColorImage(4); A->show();根据我的理解,有两个
vptr
浏览 1
修改于2018-03-11
得票数 2
1
回答
粉碎C++
VPTR
在bo3.cpp中,作者创建自己的VTABLE,并覆盖
VPTR
以指向他的VTABLE。为此,他需要VTABLE的地址,在本例中,VTABLE是对象的地址。有没有办法在代码之外构建VTABLE并覆盖
VPTR
(例如,使用缓冲区溢出)(而不编辑易受攻击的源代码)? 更新:假设易受攻击的程序要求输入字符串,我可以用它覆盖
VPTR
。我运行代码并将我的VTABLE地址(重复次数足以覆盖目标
VPTR
)作为字符串输入传递给易受攻击的程序。这样行得通吗?有没有更好/更简单的方法来做到这一点?
浏览 0
修改于2014-11-25
得票数 2
7
回答
为什么
vptr
不是静态的?
称为
vptr
的空指针指向该vtable。该类的每个对象都包含指向同一个Vtable的
vptr
。那么为什么
vptr
不是静态的呢?与其将
vptr
与对象关联,为什么不将其与类关联呢?
浏览 38
提问于2012-12-17
得票数 14
回答已采纳
1
回答
C++:如何查看
vptr
/ vtable内容
每个具有虚拟函数的C++对象都有一个指向vtable的
vptr
。我如何才能看到这个
vptr
是什么,以及它所指向的内容?我知道这是依赖于编译器的,它可以把
vptr
放在对象内存空间的任何地方。
浏览 14
提问于2014-11-28
得票数 0
1
回答
了解虚拟继承类vtables和
vptr
创建
= 0x8048c80, x = 0x0} $3 = {<basec> = {_
vptr
.basec = 0x8048c5c, x = 0x0}, _
vptr
.derivedc= 0x8048c4c, dc = 0x0} $4 = {<basec> = {_
vptr
.basec = 0x8048c1c, x = 0x0}, _
vptr
.derivedd0x0}, _
vptr
.derivedc =
浏览 15
修改于2018-09-28
得票数 4
4
回答
实施
vptr
的替代方案?
还有一点,如果这是在64位系统上(假设64位
vptr
),每个多态对象成员的开销约为8字节,那么
vptr
的开销是内存的50%。
浏览 6
修改于2018-06-28
得票数 7
2
回答
子对象中
VPTR
的存在性
}有没有人能澄清一下。
浏览 4
修改于2012-06-05
得票数 0
回答已采纳
2
回答
C++子构造函数和
VPTR
这意味着在子构造函数体中,该类的
VPTR
指向基VTABLE。当子类的
VPTR
被覆盖到它的虚拟表上时,对象构造的时刻是什么时候?第二个问题是, 为什么
VPTR
在施工结束时会过度使用?也许是因为它有一些重要的原因?为什么不能在开始构造函数体或基类构造之后重写
VPTR
?
浏览 6
修改于2014-12-04
得票数 0
回答已采纳
1
回答
Vtable和*_
vptr
创建时间
Vtable和*_
vptr
是由编译器在编译时创建的.编译器何时创建它,在执行构造函数代码之前或之后,还是在为类的对象分配内存之前或之后? 我想要弄清楚为什么虚拟构造函数是不可能的。
浏览 1
提问于2014-08-23
得票数 1
回答已采纳
1
回答
如何在编译时初始化
vptr
?
我了解到,作为虚拟分派机制的一部分,编译器为每个类创建一个vTable,并在编译期间插入一个额外的指针(
vptr
)。但是它究竟是什么时候将类的虚拟表分配给这个
vptr
我不明白编译器如何初始化它。
浏览 3
修改于2017-11-13
得票数 2
回答已采纳
2
回答
C++ --与对象或类关联的
vptr
& vtbl?
vptr
--虚拟表指针问题1>
vptr
与类的对象相关联是正确的吗?问题3>他们是如何真正协同工作的? 谢谢
浏览 6
提问于2011-03-29
得票数 6
回答已采纳
5
回答
每个对象中都会复制C++
vptr
在c++中,我们在每个对象中都有
VPTR
,但每个类只有一个VTABLE。为什么
VPTR
存在于每个对象中?它不是重复的吗?
浏览 1
提问于2013-05-23
得票数 2
回答已采纳
5
回答
虚拟表与_
vptr
存储方案
class Basepublic: virtual void function1() {}; virtual void function2
浏览 4
修改于2017-11-10
得票数 8
回答已采纳
3
回答
vptr
是否曾经不位于对象的开头?
vptr
始终位于对象的起始处,因此偏移将始终为零。我仔细研究过使用dynamic_cast反汇编各种代码片段,除了在这个参数的位置传递零之外,我从来没有看到过任何东西。
vptr
是否位于对象开始之外的任何位置?这个偏移量可以不是零吗?
浏览 0
提问于2012-09-19
得票数 3
1
回答
虚拟继承中的
vptr
数
我对虚拟继承中的
vptr
数量很好奇。因此,我编写了如下代码,以了解vptrs的数量。:4Child2 :4Child4 :8Child6 :8Child8 :12为什么Child5的大小是12?(我不知道)为什么Child7的大小是12?(我猜来自两个基类的两个
vptr
各有8个,由于虚拟继承而增加了4
浏览 1
修改于2014-10-15
得票数 3
回答已采纳
5
回答
虚拟函数不在
vptr
中列出。
vptr
索引应该显示所有的虚拟函数,但在我的示例中,仅显示了3个虚拟函数中的2个。Rank(); pE->pay(); Manager类有两个虚拟函数,pay和Rank,但是只有pay显示在
vptr
浏览 0
修改于2012-02-07
得票数 6
3
回答
vptr
的数据类型是什么?
此
vptr
的类型是什么?
浏览 4
提问于2011-06-24
得票数 4
回答已采纳
3
回答
为什么我们甚至需要
VPTR
?
为什么我们不对非虚函数使用同样的方法呢?如果这种方法可以节省我们的时间/空间,为什么我们不对非虚函数使用同样的方法呢?我的意思是,对于特定的类,有一个函数表是有意义的。
浏览 4
提问于2010-12-21
得票数 1
回答已采纳
第 2 页
第 3 页
第 4 页
第 5 页
第 6 页
第 7 页
第 8 页
第 9 页
第 10 页
第 11 页
点击加载更多
领券