C++関数の左側値参照パラメータと右側値参照パラメータの違い

WBOY
リリース: 2024-04-19 21:57:01
オリジナル
738 人が閲覧しました

C の左側の値参照パラメーターと右側の値参照パラメーターの違いは次のとおりです。左側の値参照 (&) は既存のオブジェクトを指し、その状態を変更するために使用されます。右側の値参照 (&&) は、データの取得または受け渡しに使用される一時オブジェクトを指します。

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート