私はポインタについてすべて知っています。アンパサンドは「のアドレス」を意味しますが、この状況ではどういう意味ですか?
また、演算子をオーバーロードするときに、constを使用してパラメーターを宣言するのが一般的であるのはなぜですか?
私はポインタについてすべて知っています。アンパサンドは「のアドレス」を意味しますが、この状況ではどういう意味ですか?
また、演算子をオーバーロードするときに、constを使用してパラメーターを宣言するのが一般的であるのはなぜですか?
アンパサンドのコンテキストに応じて、2つの異なる意味を持つ可能性があります。あなたの特定の質問に対する答えは、それが「のアドレス」ではなく、参照であるということです。それらは非常に異なるものです。違いを理解することは非常に重要です。
パラメーターをconstにする理由は、パラメーターが関数によって変更されないようにするためです。これにより、関数の呼び出し元が渡すパラメーターが変更されないことが保証されます。
これは、変数が参照であることを意味します。ポインタのようなものですが、実際にはそうではありません。
参照:リファレンス(C ++)
C ++型宣言では、アンパサンドは「参照」を意味します。この場合operator <<
、オブジェクトへの参照を返しostream
ます。
*this
実際には同じオブジェクトを返すため、次のように、へのostream
呼び出しを連鎖させることができますoperator <<
。
os << "Hello" << " " << "World" << endl;