📄 subject_28457.htm
字号:
<p>
序号:28457 发表者:Soren 发表日期:2003-01-21 14:51:57
<br>主题:一个函数返回引用有什么作用?
<br>内容:我看到有书上说,一个函数如果要返回多个值,其中一个可以由return语句返回,其余的可由引用型参数返回。我有点不解。另外,什么样的函数返回值可以当作左值?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:天才 回复日期:2003-01-21 15:13:31
<br>内容:就是说<BR>假如你想得到a+b 和a-b的结果确只想用一个函数,可以如下<BR>int result(int ia,int ib,int& iadd)<BR>{<BR> iadd=ia+ib;<BR> return ia-ib;<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:在水一方 回复日期:2003-01-21 15:13:36
<br>内容: 返回引用或者指针的函数可以作左值使用,但注意不要返回在函数中<BR>分配的非静态局部变量的地址或者引用。下例在vc6.0中通过<BR><BR>#include <iostream.h><BR><BR>int *Var(int *p)<BR>{<BR> return p;<BR>}<BR><BR>int &Var(int &p)<BR>{<BR> return p;<BR>}<BR><BR>int main(int argc, char* argv[])<BR>{<BR> int p, q;<BR> *Var(&p) = 1001;<BR> Var(q) = 2002;<BR> cout<<"p="<<p<<" q="<<q<<endl;<BR> return 0;<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Soren 回复日期:2003-01-21 15:27:21
<br>内容:Capcom,你的答案我觉得简单明了。但我以为可以同时确认多个答案,所以……早知如此就分两个帖子来问的了。不好意思。:)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhang2003 回复日期:2003-02-12 21:20:43
<br>内容:一般来讲返回非CONST对象也可以为左值<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhang2003 回复日期:2003-02-15 19:09:25
<br>内容:返回用户定义类型的对象时,如果该返回值不是CONST值,可以作为左值,我不举例子了:<BR> class Myclas{<BR> int xxx1;<BR> int xxx2;<BR>public:<BR> Myclas(int ix1=1,int ix2=2){xxx1=ix1;xxx2=ix2;};<BR> ~Myclas(){};<BR>//and so on<BR>}<BR><BR>Myclas func1(Myclas &obj){obj.xxx1=111;<BR> cout<<"obj.xxx1:"<<obj.xxx1<<endl;}<BR>//调用中<BR> Myclas obj(0,0);<BR> cout<<"obj.xxx1:"<<obj.xxx1<<endl;<BR> cout<<"obj.xxx2:"<<obj.xxx2<<endl;<BR> func1(obi).xxx2=222;<BR> cout<<"obj.xxx1:"<<obj.xxx1<<endl;<BR> cout<<"obj.xxx2:"<<obj.xxx2<<endl;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:IceAge 回复日期:2003-02-19 01:05:34
<br>内容:zhang2003:<BR>你的程序有 bugs:
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhang2003 回复日期:2003-02-20 17:58:29
<br>内容:首先感谢你<BR>我本来没打算举例子,只是随便写了一个,当然,作为一名编程的热爱者,我不应该有这种态度,请指教。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -