⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_28457.htm

📁 vc
💻 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&amp; iadd)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;iadd=ia+ib;<BR>&nbsp;&nbsp;&nbsp;&nbsp;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>内容:&nbsp;&nbsp;返回引用或者指针的函数可以作左值使用,但注意不要返回在函数中<BR>分配的非静态局部变量的地址或者引用。下例在vc6.0中通过<BR><BR>#include &lt;iostream.h&gt;<BR><BR>int *Var(int *p)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;return p;<BR>}<BR><BR>int &amp;Var(int &amp;p)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;return p;<BR>}<BR><BR>int main(int argc, char* argv[])<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int p, q;<BR>&nbsp;&nbsp;&nbsp;&nbsp;*Var(&amp;p) = 1001;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Var(q)&nbsp;&nbsp; = 2002;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"p="&lt;&lt;p&lt;&lt;"&nbsp;&nbsp;q="&lt;&lt;q&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;class Myclas{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int xxx1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int xxx2;<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;Myclas(int ix1=1,int ix2=2){xxx1=ix1;xxx2=ix2;};<BR>&nbsp;&nbsp;&nbsp;&nbsp;~Myclas(){};<BR>//and so on<BR>}<BR><BR>Myclas func1(Myclas &amp;obj){obj.xxx1=111;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;"obj.xxx1:"&lt;&lt;obj.xxx1&lt;&lt;endl;}<BR>//调用中<BR>&nbsp;&nbsp;&nbsp;&nbsp;Myclas obj(0,0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"obj.xxx1:"&lt;&lt;obj.xxx1&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"obj.xxx2:"&lt;&lt;obj.xxx2&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;func1(obi).xxx2=222;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"obj.xxx1:"&lt;&lt;obj.xxx1&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"obj.xxx2:"&lt;&lt;obj.xxx2&lt;&lt;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 + -