中国开发网: 论坛: 程序员情感CBD: 贴子 555827
李战
message方法实际就是dynamic方法,是可以直接重载的,不过重载的形式与dynamic方法在写法上有些不同而已。
dynamic方法实际上是“根据索引号来寻找调用地址”的多态实现,它比virtual那种“在对象结构中存储调用地址”的多态实现更节省内存。

message方法与dynamic方法实现完全相同。只是定义dynamic方法时,不需要指定寻找调用地址的索引号,由编译器自动分配。而定义message方法需要指定这个索引号,而这个索引号正好可以用Windows的消息号。因此,与其说dynamic方法是另一种形式的多态实现,还不如说它就是专门为处理消息分派而设计的。

还有,dynamic方法是根据方法名称来对应重载关系,而message方法是根据索引号来对应重载关系的(方法名称可以不同)。

参见《悟透DELPHI》之 DELPHI原子世界
李战(leadzen)

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录