关于类的实现 欢迎大家讨论 (200分)

  • 主题发起人 主题发起人 superglh
  • 开始时间 开始时间
S

superglh

Unregistered / Unconfirmed
GUEST, unregistred user!
OOP的核心(封装、多态、继承等)想来大家都熟得不能再熟了,
可是在内部是如何实现的却不清楚!!(将Delphi 转换成汇编的处理过程)
欢迎大家来讨论.
 
看VCL源码吧
 
看《深度探索C++对象模型 》,DELPHI也差不多,CSDN上有讨论:
http://www.csdn.net/develop/read_article.asp?id=17299
 
类在编译器内部实现和结构指针差不多。不过类在船舰的时候多了一个初始化而已。
 

对于重载,我的理解是这样的
重载只是方便记忆而设的,系统在处理时完全按不同的函数处理,如下:
定义 : procedure add(x,y:integer):Integer;
procedure add(x,y:float):float;
编译器将其处理为两个不同的函数
procedure add1(x,y:integer):Integer;
procedure add2(x,y:float):float;
调用 add(2,4) 翻译为 add1(2,4)
add(1.5,2.5)翻译为 add2(1.5,2.5);
即所有的工作都在编译器中处理,生成汇编后同重载没有关系,
不知我的理解是否正确.

 
谢谢 冰冷的雨,我正在看
 
类的实现在内存中是一个指针及相应的内存区域
 
这个问题太大,没法几句话说明白。
找些资料看看把。
(将Delphi 转换成汇编的处理过程)
------------------------------------------------------------------
这是编译原理中的内容,一般也没有讲到OOP编译器的过程。
有兴趣的话右以看看IFPS3(Innerfuse Pascal Script:Object Pascal Script的开源编译器项目)源码。
www.carlo-kok.com
 
谢谢 apw
正在看
 
谢谢大家
 
后退
顶部