1.RTTI与VMT的区别(RTTI是类运行时候信息,是一种抽象的称呼吗?)2.VMT是用来保存虚函数指针的,可是不懂得地方在于普通静态函数的指针也是在这个表里面吗?3.类的静态函数 字段的指针 在类的什么地方保存,谢谢大家!
解决方案 »
- 晒下自己写的比较得意的函数
- 如何给Image加上边框,并且可以设置边框的颜色???
- 求一段代码的写法.
- (300分)想了解关于网络通信方面的内容,数据从网卡到应用程序间的经过,越详细越好,文章、例程、经验、理论都要。
- 求书
- delphi+sql2000的问题??
- 恭喜发财!龙马精神!过年了!:)~~~~~~
- 对delphi编译环境熟练者请进。---一个很奇怪的问题
- DELPHI3个问题一个是全屏,一个是设为桌面,一个是execute,绝对20分
- WIN2000+线程+低级音频函数+CALLBACK播放问题(98/ME正常),怪。
- 在DBGIRD中加入一列序号
- DELPHI中QuickReport打印文本框内容
2.VMT可以理解为一个表或者就是一个数组.保存的类的虚方法指针.
3.如果没有VMT的话.Class和Record在编译后实际上没有什么分别.
TA = class
procedure T();
end;
从编译后的机器代码看和
TA = record
end;
procedure T(Self : TA);
是没有分别的.
静态方法的实现Delphi和C++有区别.Delphi有两种静态方法一种关键字是Class.另一种是2005以后增加的Static Delphi的Class方法会传进一个隐藏参数Self.这个Self是类(不是实例)
C++的静态方法编译后和普通的独立方法没有区别.
Delphi2005以后增加的关键字Static静态方法和C++的静态方法完全一致.
还有其他一些信息 运行时类型信息的指针一定也会放在这个里面RTTI是运行时类信息的数据结构,但是我个人认为一定在VMT表里会根据地址偏移可以找到RTTI的指针还有我说的是字段是指针是到底放在什么地方虽然我指针访问字段可能象C语言里的结构类型一样 直接访问但是我要知道具体的这一个机制的实现。
就好像DMT就是动态方法表你在delphi的帮助里搜索VMT看一下
它有个Layout的列表,列出了各个偏移值存放的是什么