C++の基礎:関数のパラメータを参照渡しする方法を学ぶ

提供: Support
移動先: 案内検索

概要

こちらの記事で作成した関数では、パラメータは常に値で渡されていました。変数は、関数のパラメータが表す変数にコピーされます。以下の例でおさらいしてみましょう。

#include <iostream>
 
int add (int a, int b)
{ 
  return a+b;
}
 
int main()
{
  int x = 300, y = 500;
  int result = add(x, y);
  std::cout << result << '\n';
 
}

ここでは、xとyの値がaとbのパラメータにコピーされ、加算されて返されます。パラメータを参照として使用することで、そのパラメータに直接アクセスすることができます。C++では、参照はパラメータの型の後にアンパサンド(&)を付けて定義し、それが変数のアドレスを指し示します。そのため関数のパラメータの変数名の前に「&」をつけることで、以下のコードのように参照パラメータとして変更することができます。

#include <iostream>
 
int add (int& a, int& b)
{ 
  return a+b;
}
 
int main()
{
  int x = 300, y = 500;
  int result = add(x, y);
  std::cout << result << '\n'; 
}

ここでは、xとyを単独で渡しており、関数内のaとbの変数に対してコピー操作を行っていません。変数が参照渡しされるということは、コピー操作をせずに、その変数自体を指定して渡すということです。関数のパラメータで指定された変数は、関数に渡された引数と何らかの形で関連づけられます。これにより、関数内で対応するローカル変数の変更した場合、呼び出し元の変数に直接反映させることができます。パラメータの参照渡しは、コピー操作を排除し、関数を高速化するために重要です。

関連情報