VCL对象内存分布之虚表指针
来源:互联网 发布:网络推广经理职责 编辑:程序博客网 时间:2024/05/29 13:21
为了探究VCL对象的虚表指针,我们定义了两个类:TBase和TChild,TChild是TBase的子类,TBase有两个虚函数foo和foo1,在TChild里重写了这两个虚函数。
我们创建了一个对象LTom,该对象类型为TChild,从下图可以看到,LTom对象存放在地址为$25333C0的内存上。
我们打开内存查看器,查看地址$25333C0的内存,看到从该地址开始的5-8字节为成员变量FStr字符串所在的内存地址,第9-12字节为FNum的值。
那么$25333C0内存1-4字节存的是什么呢?我们输入这四个字节$0057AD3C,看一看所指的内容,可以看到1-4字节为$0057AFE8,5-8字节$0057B06C,
我们再与对象查看器的内容对比看一下,发现LTom对象的foo和foo1地址正是$0057AFE8和$0057B06C,
由此可知$0057AD3C正是LTom的虚表指针,它指向的内容为TChild类的需方法表(VMT),该表中所存的为每一个指向该类虚方法的指针。
注意:同一类对象的虚表指针都相同。
0 0
- VCL对象内存分布之虚表指针
- VCL对象内存分布之偏移常量
- C++内存分布 虚表 虚指针(非常重要)
- C++内存分布与虚指针
- C++对象内存结构之虚指针
- C++对象的内存分布和虚函数表
- C++对象的内存分布和虚函数表
- C++对象的内存分布和虚函数表
- C++对象的内存分布和虚函数表
- C++对象的内存分布和虚函数表
- C++对象的内存分布和虚函数表
- C++对象的内存分布和虚函数表
- C++对象的内存分布和虚函数表
- C++对象的内存分布和虚函数表
- C++对象的内存分布和虚函数表
- C++对象的内存分布和虚函数表
- 虚基类、虚函数,对象内存分布
- 虚基类、虚函数,对象内存分布
- 在虚拟机上安装linux系统
- 安卓解决65535dex文件方法数越界,IllegalArgumentException问题
- How tomcat works——5 容器
- linux 文件权限管理
- 运用“孤独九剑”解决项目实际问题(一)
- VCL对象内存分布之虚表指针
- FIAA固定资产【02基本配置】
- idea+maven+scala创建wordcount,打包jar并在spark on yarn上运行
- js 定义变量的时候 var 和不带var的作用 具体代码演示
- Struts 配置
- 学长出的RE题
- ZCMU-1133- 第九章:致我们终将逝去的青春
- 51nod 1120 Lucas定理
- java.sql.SQLException: Lock wait timeout exceeded