繁体   English   中英

ostream&......这里的'&'是什么?

[英]ostream&…what is the '&' here?

在查看一些代码时,我遇到了以下代码行

ostream& out = resp.send();

我解释它的方式是resp对象有一个send方法,它返回一个名为out的ostream对象。 这里'&'符号的目的是什么? 这是否意味着resp对象返回对ostream类型对象的引用?

得到一些澄清将是很好的。

谢谢

你是对的。 &创建一个名为'out'的引用,该引用通过resp.send()引用返回的ostream对象。

注意:我们知道它是通过引用返回的,因为标准流对象无法复制,因此无法按值返回。

例如:

int x =1;
int& y = x;  //y is a reference to x.             
y=2;
cout<<x; //prints 2

以下是对C ++中引用的一个很好的解释(来自Bruce Eckel的书“Thinking in C ++”)

&符号用于声明引用。 它并不一定意味着resp.send()返回一个引用,尽管你可以假设'out'变量将从ostream派生,并且是有效的。

只是为了在工作中抛出一个扳手,resp.send()也可能返回一个完全不同的对象,并隐式转换为对ostream的引用。

如果您有兴趣,这里是参考资料属性的一个很好的总结:http: //yosefk.com/c++fqa/ref.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM