C の左側の値参照パラメーターと右側の値参照パラメーターの違いは次のとおりです。左側の値参照 (&) は既存のオブジェクトを指し、その状態を変更するために使用されます。右側の値参照 (&&) は、データの取得または受け渡しに使用される一時オブジェクトを指します。
#C 関数の左側の値参照と右側の値参照パラメータの違い
#BackgroundC の参照は変数のエイリアスであり、基礎となるオブジェクトのメモリに直接アクセスできます。 C 参照を効果的に使用するには、左側の値参照と右側の値参照の違いを理解することが重要です。
左側の値参照左側の値参照 (&) は、既存のオブジェクトへの参照を指す型として使用されます。これらは、元のオブジェクトの状態を変更するために使用されます。
構文:
int& lvalue_ref = variable;
右側の値参照右側の値参照 (&&) は、一時オブジェクト (式内の参照の型にのみ存在します)。これらは、一時オブジェクトからデータを取得したり、他の関数にデータを渡したりするために使用されます。
int&& rvalue_ref = std::move(temporary_object);
#例 1: 2 つの数字を交換する #
void swap(int& a, int& b) { int temp = a; a = b; b = temp; }
swap() 関数は、左側の 2 つの値参照をパラメータとして受け入れます。これにより、a
およびb の元の値を直接変更できます。
例 2: 一時オブジェクトを関数に渡す
void print_value(int&& rvalue) { std::cout << "Value: " << rvalue << std::endl; } int main() { print_value(42); // Temporary object created and passed as rvalue reference return 0; }
print_value() 関数は右辺を受け入れます。値の参照をパラメータとして使用します。これにより、受信値を一時オブジェクト (42) から直接読み取ることができます。
注:
左側の値参照は元のオブジェクトを変更し、右側の値参照は一時オブジェクトの値を取得します。 右側の値参照は既存のオブジェクトにバインドできませんが、左側の値参照はバインドできます。
以上がC++関数の左側値参照パラメータと右側値参照パラメータの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。