关于函数的返回类型

winapp 2003-06-10 12:13:35
返回应用和返回地址有什么区别吗?
一般该返回什么好些?
...全文
63 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
winapp 2003-06-13
  • 打赏
  • 举报
回复
多谢!
bluedodo 2003-06-12
  • 打赏
  • 举报
回复
如果你想告诉函数调用者,你的返回值不想让他再胡乱绑定,就使用一个引用,--因为它只能绑定一次。
如果你想给函数调用者调整指针位置的能力,你就用返回地址。
everestsun 2003-06-12
  • 打赏
  • 举报
回复
返回引用是返回地址的一种,还有用指针。返回值时由于变量的作用域的限制而不能不会修改
调用函数的值,强烈建议使用返回地址!!!!!
thrillers 2003-06-12
  • 打赏
  • 举报
回复
还是返回引用把,这样可以少临时变量的产生
WhatCanIdoing 2003-06-10
  • 打赏
  • 举报
回复
建议看 Effective C++
waterflier 2003-06-10
  • 打赏
  • 举报
回复
返回地址好
hiys 2003-06-10
  • 打赏
  • 举报
回复
你问的是返回引用和返回地址的区别吧?
能把问题问的再具体一点吗?
winapp 2003-06-10
  • 打赏
  • 举报
回复
zhukeke(zhukeke) 让我搞懂了 。
另外,关于返回引用还是对象我认为:
不能限制死一元还是二元运算符就该怎么做。
对函数里的局部对象返回当然要返回其对象本身,其它情况的话就效率考虑还是返回引用的好。当然如果你强调你可以用NEW或者STATIC搞定对函数内构造的对象也返回引用,那请看efictive c++ 第二版的分析。
zhukeke 2003-06-10
  • 打赏
  • 举报
回复
to hhdsq(流氓宝宝):
">>"是一元运算符还是二元?去看看MFC,返回的是“引用”还是“对象”?
lijdking 2003-06-10
  • 打赏
  • 举报
回复
同意 hhdsq(流氓宝宝)
hhdsq 2003-06-10
  • 打赏
  • 举报
回复
楼上的,像“+”这样的二元运算符一般返回对像,而不是引用。引用主要用在像“++”这样的一元运算符
zhukeke 2003-06-10
  • 打赏
  • 举报
回复
这个问题要搞清楚,必须弄清楚C++关于“引用”和“指针”的概念。
根据C++的规定,“引用”与“指针”在物理上是一样的(即机器语言级是一样的),不同的是它们的语法。“引用”在语法上是同义于“类”的,而指针不是,这一点对“类”的“运算符”尤为重要。
在C++中,运算符是针对“类”的,而不是针对“类的指针”的,如:
class A;
A a,b;
A &ra,&rb;
A *pa,*pb; //为简单起见,我省略了对这些变量的实际赋值

a+b; //这里的“+”是对“类A”而言的
ra+rb; //这里的“+”与上一句的“+”语义相同
pa+pb; //这里的“+”与前面语句中的“+”是一样的吗?显然不是!

因此,一个函数若返回“引用”,则它的“返回值”可直接参与“类的运算”(即C++所说的左值);但若函数返回的是“指针”,则没有上述特性。
显然,当“类的运算”需要“连续”进行时,只能返回“引用”。
winapp 2003-06-10
  • 打赏
  • 举报
回复
楼上的,选择的原则是什么?
比如举个例子说明。
Alicky 2003-06-10
  • 打赏
  • 举报
回复
各有长处,在不同的时候返回应有选择。
winapp 2003-06-10
  • 打赏
  • 举报
回复
我都在看Effective C++ Version2了。
知道它们的区别啊,
可是这两个东西返回哪个更有意思?除了对数组处理就没有其它一点区别了?

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧