いくつかのコードを調べているときに、次のコード行に出くわしました
ostream& out = resp.send();
私が解釈した方法では、respオブジェクトには、呼び出されたostreamオブジェクトを返すsendメソッドがあります。ここでの「&」記号の目的は何ですか?respオブジェクトがostream型のオブジェクトへの参照を返すことを意味しますか?
いくつかの説明を得るのは素晴らしいことです。
ありがとう
いくつかのコードを調べているときに、次のコード行に出くわしました
ostream& out = resp.send();
私が解釈した方法では、respオブジェクトには、呼び出されたostreamオブジェクトを返すsendメソッドがあります。ここでの「&」記号の目的は何ですか?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++での参照の良い説明です( BruceEckelの本Thinkingin C ++から)
&記号は、参照を宣言するために使用されます。'out'変数はostreamから派生し、有効であると想定できますが、resp.send()が参照を返すことを必ずしも意味するわけではありません。
作業中にスパナを投げるだけで、resp.send()がostreamへの参照への暗黙の変換を伴うまったく異なるオブジェクトを返す可能性もあります。
興味がある場合は、参照のプロパティの概要を以下に示します。http: //yosefk.com/c++fqa/ref.html