2012-07-11 61 views
1

虽然在看一些代码,我在整个下面的代码行ostream&...这里的'&'是什么?

ostream& out = resp.send(); 

我解释这是该RESP对象有一个返回叫了一个ostream对象的发送方法的方式来了。这里'&'符号的用途是什么?这是否意味着resp对象返回对类型为ostream的对象的引用?

这将是很好的一些澄清。

谢谢

+8

是的,你很可能正确地回答了自己的问题。 – Mysticial 2012-07-11 03:54:39

回答

3

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

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

例如:

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

Here是C引用了一个很好的解释++(从C++布鲁斯Eckel的书思考)

+0

有道理。谢谢! – 2012-07-11 04:21:29

0

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

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

如果你有兴趣,这里是引用的性能很好的总结: http://yosefk.com/c++fqa/ref.html