免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: lipingtababa
打印 上一主题 下一主题

[C++] 你们的代码会用引用吗? [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
51 [报告]
发表于 2008-11-19 10:53 |只看该作者
楼主要是觉得引用不好,大可以像赵平智一样,把自己的想法付诸于实现,做出一个像样的东西来让大家明白你的想法。
天马行空地想象设计确实很值得赞赏,
可是计算机不完全是理论,还是一个工程,有些看上去很美的东西,如果无法实现,那就只能停留在草稿纸上。

也许你认为 C++ 很丑陋,但它是那个时代的产物,是那个时代的大师权衡利弊的结果。
也许它现在已经不适合了,那你得拿出一个像样点的东西来批判他,这样才有说服力。

论坛徽章:
0
52 [报告]
发表于 2008-11-19 11:07 |只看该作者
原帖由 guoruimin 于 2008-11-19 08:49 发表

不要轻易的说别人不到火候!
或许还有人说认为引用好的不到火候呢!

我刚开始用的是C,后来大多数用C++(6年)。
现在写新东西都用C(有2年了)。
我不想谈什么火候,只是自己感觉用什么方便就用什么!


我也很少用引用,但是我从来不会说引用没指针好,没指针方便。因为C++中既然由这个东西,自然有它存在必要,就像C中一些很少用到的字符一样,你没用它不代表它一点用没有。

LZ的观点,一上来就否认引用的特点,而又拿不出令人信服的理由。

我还说我家的菜刀比你家的砍刀好用呢,我只用来切菜,不会用它砍人。

论坛徽章:
0
53 [报告]
发表于 2008-11-19 12:25 |只看该作者
原帖由 wzcsoft 于 2008-11-18 21:22 发表

楼主,我来给你你想要的答案,从二者的区别入手。
(1)非空区别。在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让他指向一个对象,但是该变量在某些时候也可能不指向任何对象,这是你应该把变量声明为指针,因为这样你可以赋予空值给该变量。相反,如果变量肯定指向一个对象,例如你的设计不允许变量为空,这时你就可以把变量声明为引用。不存在指向空值得引用这个事实意味着使用引用的代码效率比使用指针要高。
(2)合法性区别。在使用引用之前不需要测试它的合法性。相反,指针则应该总是被测试,防止其为空。
(3)可修改区别。指针与引用的另一个重要的不同是指针可以被重新赋值以指向另一个不同的对象。但是引用则是总是指向在初始化时被指定的对象,以后不能改变,但是指定的对象其内容可以改变。
(4)应用区别。总的来说,在以下情况下你应该使用指针:一是你考虑到存在不指向任何对象对象的可能(在这种情况下,你能够设置指针为空),二是你需要能够在不同的时刻指向不同的对象(在这种情况下,你能改变指针的指向)。如果总是指向一个对象并且一旦指向一个对象后就不会改变指向,那么你应该使用引用。


这么高的楼,精华就在此贴了!

引用也不是不可修改的,但是比较麻烦,比如引用作为struct的元素包起来,用memcpy赋值struct的方法修改,这样做会不会编译器眼花也是个问题。
总的来说,不赞成强行修改引用。

论坛徽章:
0
54 [报告]
发表于 2008-11-19 12:26 |只看该作者
原帖由 flw 于 2008-11-19 10:53 发表
楼主要是觉得引用不好,大可以像赵平智一样,把自己的想法付诸于实现,做出一个像样的东西来让大家明白你的想法。
天马行空地想象设计确实很值得赞赏,
可是计算机不完全是理论,还是一个工程,有些看上去很美 ...


赵平智,OIOIC ?

论坛徽章:
0
55 [报告]
发表于 2008-11-19 13:52 |只看该作者
记得上课时,老师说过一句话
引用更多的是一种暗示

感觉很对

论坛徽章:
0
56 [报告]
发表于 2008-11-19 13:54 |只看该作者
非特殊要求为啥要强行修改引用,感觉有点违背初衷。想修改数据直接用指针岂不是很方便。

论坛徽章:
0
57 [报告]
发表于 2008-11-19 14:56 |只看该作者
我不是在挑战Bjarne Stroustrup. 我一个小小的应用程序员,根本就没有改造C++的心.何必一定要我拿出一个像样点的东西来呢

我只是想跟一帮和我差不多,或者差那么一点好,或者那么一点的应用程序员交流下,大家讨论讨论引用的用法,我的标题就很清楚了"你们的代码会用引用吗?",我说的可不是"你们的代码不要用引用."

至于我个人喜好指针,不喜欢引用,完全是我的自由.你没必要对着我  ,你觉得呢

论坛徽章:
0
58 [报告]
发表于 2008-11-19 15:01 |只看该作者
原帖由 lipingtababa 于 2008-11-19 14:56 发表
我不是在挑战Bjarne Stroustrup. 我一个小小的应用程序员,根本就没有改造C++的心.何必一定要我拿出一个像样点的东西来呢

我只是想跟一帮和我差不多,或者差那么一点好,或者那么一点的应用程序员交流下,大家讨 ...


后来写多了代码,我觉得这个玩意的引入完全是多余的,他所有的功能都可以被指针取代(实际上它也是用指针实现的).

这是你的原话。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
59 [报告]
发表于 2008-11-19 15:03 |只看该作者
呵呵,你终于明白当当当当当的道理了啊。
我从一开始就没指望干涉你的喜好,干涉你的自由。
我从一开始就说过了,你爱用不用,觉得什么好用就用什么。
是你死乞白赖求着我给你讲明白为什么引用比指针好用。
现在我稍微给你阐述了一下,你又说我针对你,唉。

论坛徽章:
0
60 [报告]
发表于 2008-11-19 15:04 |只看该作者
对,没错,就是我的原话,我是这么觉得的,我也是这么做的,尽量不用引用.

我这么一觉得冒犯你了么
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP