关于《高手突破》的不同见解。(反正我不同意作者的观点)(1分)

  • 主题发起人 wr960204
  • 开始时间
W

wr960204

Unregistered / Unconfirmed
GUEST, unregistred user!
[red]首先声明我没有对Nicrosoft的个人意见,只是对观点抒发不同看法[/red]
Nicrosoft的高手突破上市了,虽然不算十分深奥和经典,但是比一些入门、提高的书强多了。
作者在书中说对象的事件是函数指针。我不同意。
作者举例子说
TNotifyEvent = procedure(Sender: TObject) of object;就是定义一个函数指针的类型。
我不同意的理由在于:如果声明的形式是TNotifyEvent = procedure(Sender: TObject);那倒
确实是函数的指针。但是如果按照上面的声明方式那就是方法指针
例如你不能把一个函数的地址值按照指针附值的方法给一个方法的指针。
所以我认为作者在这里用词不当。也许是笔误吧?
欢迎Nicrosoft能进来解释这个问题。


 
of object一般是类函数吧,
 
我喜欢看人讨论。订个邮件。[:)]
 
个人意见:
属于一个类的过程和函数统称为这个类的方法。
对于事件来说,它们都是指向类的过程的指针。所以叫过程指针更准确。
 
又有课听了,抢位置先。
 
切!方法本质上不就是函数吗?
 
ft, agree 一个过客
 
to 一个过客
方法和函数有着本质的区别。
函数中你能实用类的成员而不指明属于哪个类么?
函数中有Self默认指针么?
你能把一个方法的指针指向一个函数的地址吗?
根本就是不相容的。
 
却是是不一样的。
如果,也许nicrosoft把读者定位为初学者
觉得叫函数指针人家更好理解
希望有一本和《java编程思想》一样好的
《delphi编程思想》
那就好了
 
正版delphi送的书中称:
procedure xxx() of object 占8个字节
procedure xxx() 占4字节
 
拜托各位:
先给我说明白,什么叫:
过程?
函数?
指针?
方法?
事件?
说清楚了,就什么都不用说了。
 
想听听:)
 
我是真正的初学者不小心也买了本“高手突破”32元还有个光盘!
看了半天太"深"了,话语写的不错!
 
贴主是不是太咬文嚼字了一点——学究风范 :>
 
傻逼一个,照你这么说,公牛母牛也有本质的不同了,因为他们某个部位不一样。
有些书上把方法称为成员函数,这符合大多数人的阅读/理解习惯。[方法]只是成员函数
的另外一种叫法而已。你大概面向过程太久了,函数这个词对你太敏感。
 
首先,方法(Method)是指类的成员函数(function)和过程(procedure),所以从这方面说wr960204说的就不对。当然作者的表达也要斟酌,但是既然是写给高手的书,那么可以表达意思也就可以了。
第二,函数和过程确实有区别,可是也不是本质上的区别。函数有返回值,过程没有返回值,这是他们最大的区别。只是在函数返回的时候才有所区别。
第三,关于方法指针的问题。你有没有看清楚作者的表达:函数指针的类型。那么不同的类型当然不可以赋值了,但是如果定义一个这种类型的指针类型,赋值是可以的(至少编译器允许),但是如果执行肯定报错(除非两种类型的参数、返回值、调用习惯完全一致)。
以上只代表个人观点,请大家指正。
 
同意xishpo的说法
函数指针(或者是过程指针)和方法指针还是有区别的!
函数指针是一个32位的地址,而方法指针好象除了一个32位的指针外,后面还跟一个32位的指针好象是指向VMT。
不过这个Nicrosoft不至于不知道吧。也就是小小的习惯性说法而已,完全概念不混淆的书好象没有几本。
 
顶部