这个指针指向哪?(50分)

  • 主题发起人 主题发起人 locka
  • 开始时间 开始时间
L

locka

Unregistered / Unconfirmed
GUEST, unregistred user!
Tproject=class(Tobject)
myProject:=Tproject.create

那么myProject是一个指针了,可以赋给一个指针参数了,

那myProject到底指向哪?
 
指向这个对象的实例。是个数据结构,大小与对象有关
 
delphi用的是引用对象模型,<<delphi6从入门到精通>>有一章专门讲这个,我站在书店看完了这一章 ^_^
 
Tproject.create在堆中构建对象,myProject就是指向这个对象的位置了。
-------------------------------------------------------------------
在定义一个类的时候,所有类的指针都是TObject类型的指针,其实就是这个类的虚拟方法表
的数据结构(VMT)。我们在定义类时用到Type结构就是定义一个新的VMT(继承)。里面有这
个类的各种方法,函数和变量(包括它们的可见范围)。而在这些方法中create又是一个重要
的方法,它用复杂的过程在堆中构建对象(建立这个对象实例在内存中空间),并将这个空间
前4个字节化为指向类(产生对象的类)VMT的指针,而这里myProject就是这4个字节的东东了
。以后我们用它的方法,如:myProject.proj1,这个proj1就是myProject指向的VMT中
Tproject.proj1了,只要对象没有Destroy,堆中就存在这个对象,那么就可以由VMT访问堆中
相应的数据(这些数据在create时完成初始化和地址映射)。只是自己粗陋的理解,不知道是
否得当,望高手们勘正!
---------------------------------------晶晶
 
多人接受答案了。
 
后退
顶部