作者godfat (godfat 真常)
看板PLT
标题Re: [问题] 请问call by address
时间Thu Mar 22 20:19:20 2007
不知为何最近事变好多…很多事都延迟了
※ 引述《tkcn (小安)》之铭言:
: ※ 引述《godfat (godfat 真常)》之铭言:
: : 根据 wikipedia,
: : http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_reference
: : ...总觉得这页长得好像跟以前不一样?
: : 我记得以前是说 call by address 是 call by reference 的另一种说法
: : 也就是说,两件事是指同一件事
: : 现在看起来 call by address 又是 call by reference 的变形了
: 个人听过一种说法,
: reference 骨子里是以 address 实作,
: 但是表面上却把它包装成就像是直接在操作物件一样,
: 因此使用 reference 比使用 address 更为直觉且安全。
虽然我不知道这部份实际上是怎麽写的,不过听到的也都是用 pointer 实作。
另 reference 除了使用上更为直觉且安全外,也提供了 compiler 更多资讯,
(不可能是 0, refer 途中不可能改变位置)使得最佳化也变得更为容易(应该)。
但 Qt 却不爱用 reference, 喜欢用 pointer 传递参数。
记得在某个地方有提到,因为 Qt 认为传递 reference 没有明确表示出 side effect,
而传递 pointer 时,programmer 会比较注意到这个传递是会有 side effect 的。
QWidget widget;
do_someting(&widget);
各种不同的想法,我觉得满有趣的。
: : 其实我只是想说,名词不太重要,不是因为他真的不重要,
: : 而是说法真的是太多种了|||b
: : 所以呢,知道是什麽事情就好了… :(
: 这一点我也十分赞同,
: 不过与其让读者呆呆的片面相信某本书的说法,
: 我觉得还是有必要弄清楚其中的一些细节。
这也是为什麽我说名词不重要,却还是一天到晚在提名词的原因 :p
总觉得台湾实在有太多的书在胡说八道了。(恐怕老师也是)
(嗯,说到老师就开始想骂人了…
十年没碰也敢教,错误百出还自信满满,都被质疑了也不会想想自己是不是错了)
--
「行け!Loki!」
(rocky ロッキー)
-Gurumin ぐるみん 王子? XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.58.12