S superglh Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-22 #1 OOP的核心(封装、多态、继承等)想来大家都熟得不能再熟了, 可是在内部是如何实现的却不清楚!!(将Delphi 转换成汇编的处理过程) 欢迎大家来讨论.
冰 冰冷的雨 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-22 #3 看《深度探索C++对象模型 》,DELPHI也差不多,CSDN上有讨论: http://www.csdn.net/develop/read_article.asp?id=17299
W wr960204 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-23 #4 类在编译器内部实现和结构指针差不多。不过类在船舰的时候多了一个初始化而已。
S superglh Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-23 #5 对于重载,我的理解是这样的 重载只是方便记忆而设的,系统在处理时完全按不同的函数处理,如下: 定义 : 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); 即所有的工作都在编译器中处理,生成汇编后同重载没有关系, 不知我的理解是否正确.
对于重载,我的理解是这样的 重载只是方便记忆而设的,系统在处理时完全按不同的函数处理,如下: 定义 : 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); 即所有的工作都在编译器中处理,生成汇编后同重载没有关系, 不知我的理解是否正确.
H hardware007 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-23 #7 类的实现在内存中是一个指针及相应的内存区域
A apw Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-23 #8 这个问题太大,没法几句话说明白。 找些资料看看把。 (将Delphi 转换成汇编的处理过程) ------------------------------------------------------------------ 这是编译原理中的内容,一般也没有讲到OOP编译器的过程。 有兴趣的话右以看看IFPS3(Innerfuse Pascal Script:Object Pascal Script的开源编译器项目)源码。 www.carlo-kok.com
这个问题太大,没法几句话说明白。 找些资料看看把。 (将Delphi 转换成汇编的处理过程) ------------------------------------------------------------------ 这是编译原理中的内容,一般也没有讲到OOP编译器的过程。 有兴趣的话右以看看IFPS3(Innerfuse Pascal Script:Object Pascal Script的开源编译器项目)源码。 www.carlo-kok.com