|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
cccar (cccar) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2004/4/30 7:55:57 |
标题: |
请问对象创建的全过程(在线等谢谢了) |
浏览:1017 |
|
加入我的收藏 |
楼主: |
比如指向VMT的指针在什么地方,属性在什么地方,怎么知道类方法的地址
----------------------------------------------
- |
作者: |
cccar (cccar) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2004/4/30 8:43:15 |
2楼: |
先谢谢你
----------------------------------------------
-
|
作者: |
cccar (cccar) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2004/4/30 10:58:42 |
3楼: |
您好关于对象创建的问题我可不可以这样理解,就是 创建对象的时候如果是第一个创建的对象,那么就要创建VMT,而且在对象的内存中前四个字节为VMT的指针,接下来的是对象的所有的字段内容内容,对象的内存空间就存放这两项内容。 在程序的编译的时候就在程序内存空间中建立了类方法一般方法函数等内容,然后在建立VMT的时候有个指针可以指向他就可以了 是吗
----------------------------------------------
-
|
作者: |
cccar (cccar) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2004/4/30 11:31:20 |
4楼: |
一个类(class),从编译器的角度来看就是一个指向 VMT 的指针(在后文用 VMTptr 表示)。在类的 VMTptr 的负地址方向存储了一些类信息的指针,这些指针的值和指针所指的内容在编译后就确定了。 这句话可不可以这样理解一个类的VMT在编译的时候就确定了,那么《INSIDE VCL》中为什么说在第一个类对象创建的时候才创建完整的VMT内容呢 不明白到底在编译的时候进行什么操作了,对象创建的时候又进行什么操作了
----------------------------------------------
-
|
作者: |
cccar (cccar) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2004/5/1 12:33:40 |
7楼: |
delphi原子世界里面也是这样说的,其实我想知道类的一般方法的存放方式 我的汇编语言不是很好,不然我反汇编看看,没有办法这就是半路出家的坏处,如果在大学的时候学计算机就好了,就没有这么多的麻烦了
----------------------------------------------
-
|
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2004/5/1 14:43:53 |
8楼: |
你把问题看的太简单了 就算你是大学学过汇编 也学不到这种程度的 汇编偶学过 光是 简单的 字符处理就足够让你死定在哪里了!
更不用说编译器的 汇编编写过程,建议器国外网站找编译器制作过程 看偶们中国人翻译的《编译原理》也只能呶呶洋洋!学不到什么东西 因为他涉及 文法 的编写 (相当复杂)和 假想机的概念!
类只是一个概念而已,在生成实例后才出现在内存中,至于他的描述在PE结构的什么地方,偶也不懂 ,因为 《面向对象》被编译成二进制机器码,就面目全非了!
----------------------------------------------
|
|