在浏览一些代码时,我遇到了以下代码行
ostream& out = resp.send();
我解释它的方式是 resp 对象有一个 send 方法,该方法返回一个调用的 ostream 对象。'&' 符号在这里的用途是什么?这是否意味着resp对象返回对ostream类型对象的引用?
得到一些澄清会很棒。
谢谢
在浏览一些代码时,我遇到了以下代码行
ostream& out = resp.send();
我解释它的方式是 resp 对象有一个 send 方法,该方法返回一个调用的 ostream 对象。'&' 符号在这里的用途是什么?这是否意味着resp对象返回对ostream类型对象的引用?
得到一些澄清会很棒。
谢谢
你说的对。& 为 resp.send() 的引用返回的 ostream 对象创建了一个名为“out”的引用。
注意:我们知道它是通过引用返回的,因为标准流对象不能被复制,因此不能通过值返回。
例如:
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