2009-10-15 15 views

答えて

12

戻ってきています。厳密にアンパサンドを「のアドレス」と考えることは、必ずしもあなたのためには機能しません。 HereさんのC + + FAQ Liteの参考情報です。

constが行く限り、constの正確さは、C++の型の安全性と可能な限り多くのことをやりたいことで非常に重要です。 FAQの別のpageはその点で役立ちます。 constは、副作用関連の変更から、期待していない状況でデータを掘り下げるのに役立ちます。

3

これは、変数が参照であることを意味します。これはポインタのようなものですが、実際はそうではありません。

参照:C++型宣言においてReference (C++)

3

、アンパサンドは、 "基準" を意味します。この場合、operator <<ostreamオブジェクトへの参照を返します。

それは実際に*thisを返すので、それは実際には同じostreamオブジェクトだ、とあなたはこれに似operator <<にチェーンコール、できることを意味します:あなたはのostreamオブジェクトへの参照を、その場合には

os << "Hello" << " " << "World" << endl; 
+1

ほとんどのプログラマが実装している 'operator <<'は、メンバ関数ではないフリー関数なので、 'this'は含まれていません。 – sbi

6

アンパサンドの文脈によっては、2つの異なることを意味する可能性があります。あなたの特定の質問への答えは、それが参照であり、 "のアドレス"ではないということです。彼らは非常に異なるものです。違いを理解することは非常に重要です。パラメータのconstを作るために

C++ Reference

理由は、関数によって変更されないようにすることです。これにより、関数の呼び出し元は、渡されるパラメーターが変更されないことが保証されます。

+0

「通常の」変数にアンパサンドを使用すると、メモリ内の変数のアドレスが取得されます。これはOmarの意味です。参考までに、&は別の意味を持っています。 – Jesper

+0

Jesper、あなたは正しいです。私はその区別をするために私の答えを更新しました。 – nathan

関連する問題