2012-07-11 186 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