难道对象不需创建就可以使用?或是Delphi的Bug?????(50分)

i 初试化是必须的,barland 内部也是这样做的,
至于有是有有时没有是 Dcu 与Pas 的问题
(进恭参考)
 
我等了好久呀...

>>你们编程时,对于局部定义的普通变量都是进行初始化的吗?
至少我在由Basic转向Pascal、C的时候已经完全做到了(除非无意漏掉),我的程序在最后
一次修改完毕后,没有任何编译警告、错误。

>>把i:=0这句去掉,程序有错吗
这个程序不会发生像前面一样的非法内存访问错误,但是,它隐藏了最致命而又最难以发现
的错误——逻辑错误!对一个未初始化的整型变量进行增量运算,并显示出来,除了试验以外
没有实用意义。如果你在后面用i作为一个输入参数传入一个重要的运算过程——其后果是可想
而知的。

>>我绝不会在程序中这样使用
好!我等的就是这句话。 :)
您会不会冥思苦想:如果我经常一只脚穿鞋,而另一只脚不穿,这样走上十几年,我会不会
因此而造成双腿的长度不一致?如果真的发生了的话,应该到哪里医治?大概要花多少钱、
多久时间?我会不会因此而耽误工作、失去一些机会?......

>>没什么再想说什么的了
我为了解决这个“妄之又妄”的问题,浪费的时间已经太多太多...我也累了。不过——
能够为别人解除疑惑,我还是很高兴的。 :)


慈、悲、喜、舍 :))
 
to creation-zy:
>>不过——能够为别人解除疑惑,我还是很高兴的。 :)
你高兴的太早了吧! 谁因为你的解释而除去疑惑了?? 嘿嘿

 
又是一个“妄之又妄”,好了,好了creation-zy,很抱歉让你浪费了太多太多时间,不过,
我想你最后的解释应该是对的,这点我很高兴,但做为这个现象(不创建就可使用),和我
对它的理解,都是存在的,现在我知道了原因,对于我和其它不知道原因又想知道的人们来
说,有什么不好和不可以的呢?

如果可以的话,我也对你认为有意义,而我不这么认为的帖子发点妄评。

就拿你那个“关于人工智能的讨论”,我大概就是要归属到你的“不可能先生”行列中,是
的我认为这不可能--不是认为永远不可能,而是同意其中wddelphi的话,没有意义,如果
我愿意,我也可以像前面SS2000和你一样,说些“走火入魔”、“偏离正道”、“毫无意义”、
“一个头脑正常的程序员”之类的话,当然,您看了不一定会生气,但肯定会反击,而且,
这些人还反复进来告诉你这个没有意义,不要再研究这些了,我想,你迟早也会不满的--
你们认为没有意义的事,并不意味着我就不可以去考虑一下!我没有进到那个帖子里发“妄言”
是因为我认为你相信、愿意做的事情对你来说一定是有意义的,而如果我进来发表那样的言论,
到是真正没有意义的!

就以你送xijun的话,在这里我认为也无不可:不相信在delphi中非要创建对象,才能使用它。
看到这个现象的人,都会奇怪,如果你无法解释这些现象,你对这样的言论,大概也只有哀叹
的份了;到是这句话“除非违反了因果定律、有为必无常定律——其它的一切都是有可能的。”
有错误,因为,照爱因斯坦的理论,时间可以倒流,如果这样,对人类最大的困惑就是:人类
信奉了数千年的因果定律被推翻了!

你是个高手,如果你这么助人为乐的话,干吗不来看看我的两个尚未解决的问题?当然,其中
一个大概也是你认为的没有意义的问题!不过好像听你说过,你只是对数据结构比较精通,所
以,也不指望你会愿意帮我解决问题!当然,我不是要拉你帮我回答问题,只是对你的
“能够为别人解除疑惑,我还是很高兴的。”这句话的回应罢了!

慈、忿、喜,--不舍 :))
 
SS2000:
你也别太小人了,挑拨离间,嘿嘿嘿…… ;)

我就因为creation-zy的解释而除去疑惑了,为此谢谢creation-zy,非常!
 
来自:creation-zy, 时间:2002-9-1 3:49:00, ID:1299299的帖子是后来改过的呀!
在我写来自:dirk, 时间:2002-9-1 9:33:00, ID:1299436 | 编辑之前才看到!
 
看来Dirk是针对我有意见了,反思一下
可能是我说得太简单,只是说了理论的东西,没有拿出实际代码,比如,我一开始
就让Dirk去掉优化编译的选项,但并没有像creation-zy那样去查看汇编代码,
自然说服力就差点,而且我说的都是理论,没有太多例子,要不Dirk怎么会不服的?
不过“关于人工智能的讨论”这个问题,和这个问题相提并论,是不是有点牵强附会?
(我可不敢说太重的话,怕Dirk又生气:),因为“关于人工智能的讨论”是一个学术
上的讨论,而且是没有定论的东西,当然会有争论,甚至互相指责对方观点。当目前的
问题也可以说是个学术问题,但是确实有肯定的答案,是定论的东西。当然,可能我看
这个问题的时候,认为是很简单的问题,没有什么争议的问题,但是其他人未必这么看
所以就起争执了。不过我声明一点,我没有说Dirk是“一个头脑正常的程序员”这样的
话,我只是看到Dirk的研究结果错误了(抱歉,我自始自终都这么认为),而且研究的
方法也错了,应该像creation-zy那样,查看汇编代码,而不是不断的写代码证明其正
确,所以,我看到的是Dirk用错误的研究方法得出错误的结论,我都替他着急呀,所以
用了“走火入魔”来形容,(类似武侠里的练功)结果让Dirk生气了。
这些话已经和该问题无关了,就算是闲聊吧。Dirk,你的钻研精神是值得肯定的,如果
要成为高手的话,必须具备你那样的精神,回头想想,我又何尝不是像你那样过来的,
只是经过10多年的编程,对这些问题就不以为然了,用过于生硬的方法对待,让Dirk兄
怒火中烧了。生气归生气,忠言逆耳,我再说一句,就是Dirk你要找到更好的方法学习,
那样会事半功倍。像这个问题,你虽然最后明白了,但却是事倍功半。(你给我的感觉
是半路出家的程序员,说得不好,千万别生气。否则,气出病来还是你倒霉,呵呵:)
 
唉,真没话说,我不止n次申明,我在这个论坛中绝不会针对对谁有什么意见,正是因为如此,
我才一再申明,就事论事,讨论问题,就是不想和什么人有什么过节,大家到这里来难道不是
来讨论问题和求知的吗?难道还是来吵架的吗?你啊你啊,SS2000,一次又一次的给我扣帽子,
我也只是告诉你我对你的话有点生气,我有针对你什么吗?

你怎么就看不明白我话中要表达的意思?难道是我表达的太不清晰?“关于人工智能的讨论”,
我是这么说的:

“我没有进到那个帖子里发“妄言”是因为我认为你相信、愿意做的事情对你来说一定是有意
义的,而如果我进来发表那样的言论,到是真正没有意义的!”

我的意思是:我并不会因为我认为这个问题在这里讨论没有意义而进去发表什么“妄言”,我
尊重每个人对求知、探疑的渴望,所以我不喜欢那些一进来什么实质性问题都不说,代码也不
运行,就咿哩哇啦乱扣帽子的人,明白吗?如果你真替我急,就实质性地解决问题(如果有这个
能力的话),说出让人信服的话,不要事先乱扣帽子,事后又做诸葛亮。

还有,你又扣错帽子了,我不是什么半路出家的程序员,我就是这个专业的,刚出道,可能基础
差了点,呵呵呵,生气是人之常情,我会,你也会,气出病来可就不正常了,至少我不会,你呢?
哈哈哈……

谢谢你的忠言,既然大家都退了一步,你也不要气鼓鼓的了,大家还是以和为贵嘛!哈哈哈……
 
呵呵,既然你认为我再给你扣帽子,那就是说你根本不认可我说的话。
我再说什么也没有意义了。
不过你可以再仔细看看我前面的帖子,看看我是否在一次一次的给你扣帽子,
是否是“事后又做诸葛亮”,creation-zy可以谈谈我的解释是否可以解释
你的问题。看来只有creation-zy说Dirk才认可了。creation-zy,有兴趣的
话,再发表两句见解?!
 
我没有不认可你说的话,哈哈哈,真可惜,你看不到我现在的表情,不过我到是真的觉的
你扣了几顶帽子给我,像什么“走火入魔”、“半路出家的程序员”什么的,唉!唉!唉!
不要再争这个了!
我不是只认可creation-zy的话,我不是以分取人的,但是也的确是creation-zy的话解了
我的惑,你的解释也许你认为是到位了,可其中本质我还是不明了,那你让我怎么说呢?
而且你的口气那么不好,也懒得问你了,本来我是来解惑的,又不是来听你训人的,无知
并不可耻,不求知才可耻!

好了好了,你也消气吧,看得出你也是高手,是高手就多帮助帮助刚入道的朋友吧,这样才
会受人欢迎、尊重!

(事后诸葛亮我收回!)
 
>>我想,你迟早也会不满的
>>是后来改过的
我已经努力的让自己远离一切烦恼——尽量不因外境产生烦恼,或者因自己而对外境产生
不良的影响——显然我现在还没有达到理想的境界,所以会说出一些不当的话。在您批评了
以后,我就改了帖子,免得后来的人们受到我的不良影响,产生烦恼。
关于其它的诸如因果律之类的观点,我没有什么可说的,因为以我目前的知识,我无法
说服任何人。我只是想说——任何工具的产生,都是为了部分的让人类从永无休止的劳作中
解放出来。除非我们能够用别的方法造就更加强大的工具,否则,现在的电脑就是我们现在
最大的希望——电脑已经拥有了战胜人类棋王的可怕的计算能力,现在只要再来上画龙点睛
的一笔,就可以让它胜任很多简单的工作——而人工智能是达到这个目的的必经之路。现在
已经使用的诸如指纹锁、自动邮件分拣、工业机器人等等的应用,不都是人工智能的产物吗?
这些东西的存在对我们来说没有意义吗?
 
再乱说几句,我觉得指纹锁、自动邮件分拣之类的东东应该算不上是AI,当然,它们显然
是有意义的,但它们都是工作在固定程序下的,应该还算不上AI,电脑战胜棋王,我觉的
这只是显示了机器的运算能力,而不是AI,恐怕那台机器在战胜棋王之后,根本不知道自
己在做什么,做了什么,国际象棋中有什么“印度防御”什么的(不懂,听来乱说的),
估计那台机器创造不出什么“深蓝防御”什么的,像指纹锁、自动邮件分拣之类的,也只
能算是些工艺复杂、精准的程序吧!
这点,我认同xijun的话,打个比方,如果不了解内脏的工作原理,工作方式及其有关的
知识,我们是无法制造出替代品的!哪能有那么简单?呃,说句打击人的话(不是在打击
你,只是我这么看),你,还有其他的热衷于这个研究的人,估计搞不出什么AI,你是在
专门研究AI的科学实验室工作的吗?如果不是,花费太大的精力在这方面,在我看来,实
在是比我想搞清楚这个问题的原因没有意义得多,毕竟,我的问题是肯定可以有答案的,
而你可能终到老也得不到个答案,但我相信,既然你认为,这么做有意义,我又怎能说三
道四,尽说那些无聊的话?祝你成功吧!

creation-zy,你的脾气和自制力还真是不错,像你学习!
 
TO:All
看了大家的讨论,果然受益非浅!(虽然我是个“半路出家的和尚”)。
同时也感谢大家的讨论使我辈之人长见识!
其实这个问题我是在去年学习C++时发现的。Delphi语言之比于C++(以及java),
在OO方面给人诸多不解之处。(我个人理解)
C++的对象可以创建在栈中(声明即创建),也可以创建在堆中(new一个对象指针)
,使用中更为简单和严禁(pascal一直以严禁著称)。当然对于我们编程的素质,对象
(包括指针)的声明后一定要初始化。
而Delphi的对象全部创建在堆中(书上说的)。我第一次接触的delphi高手的代码中
(delphi3。0)对象是如此定义的 type myObject=Object。而且myObject不用创建就可以
使用,这是什么语法?
而且令我辈痛心的是几乎看不到一本讨论delphi OO编程方面的专著!
还有就是borland每次版本升级时,VCL的核心代码就有被改动之嫌,我的低版本的
delphi源码在高版本中总有问题(不是编译时有问题就是运行时有问题)。
尽管如此,Delphi仍是我的最爱!
感谢creation-zy和ss2000这样的专业人士为我们解惑,更感谢dirk这样专注的对待
人生的人!





 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
580
import
I
顶部