関数の引数も参照で宣言できます。
Cでは引数をアドレスで渡せましたが、C++では参照で同様のことが実現できます。
では、関数の引数に参照を使う例を紹介します。
//関数定義
double AddNumber(double &x, double &y) //引数を参照で宣言しています
{
return x * y; //*(アスタリスク)がついていないことがポイントです
}
//実際の呼び出し例
double number1 = 3.141592, number2 = 1.2345;
double answer = AddNumber(number1, number2); //&がついていないことがポイント
ここでは、もし x と y の値を変更すると number1, number2 の値も変わることを
押さえてください。
それでは、参照の機能を使って引数を渡すとアドレスで引数を渡した時と
同じことができます、というサンプルプログラムです。
#include <iostream>
using namespace std;
void ValueChanger(double &x); //参照の関数のプロトタイプ
int main(void)
{
double number1 = 10;
cout << "number1 = " << number1 << endl;
ValueChanger(number1); //ValueChanger関数の呼び出し
cout << "number1 = " << number1 << endl;
return 0;
}
void ValueChanger(double &x)
{
x = 500;
}
実行結果
# ./test
number1 = 10
number1 = 500
解説
main関数の中の変数number1は最初10で初期化しています。
ValueChanger関数をコールすると、値が500に変わっていますね。(^^)
これはValueChanger関数の中で引数 x に500を代入したためです。
今日の名言
男女を問わず物事に集中できる人間は、自分と接触する人間を惹きつけてやまない。
まるで磁石である。
H・アディングトン・ブルース
うんと熱中せよ。熱中が熱中を生む。
ラッセル・H・コンウェル
私は口角泡を飛ばして熱弁を振るう人間が好きだ。泥のぬかるみになるより、
間欠泉になって熱湯を吹き上げるほうが良い。
ジョン・G・シェッド
私が心ゆくまで作曲したり、文章を書いたり、お祈りしたり、説教したりするときは、
怒りを込めてやる必要がある。その時、私の血液は沸き立ち、私の理解力は
研ぎ澄まされるのだ。
マルティン・ルター
彼は思う存分にそれを行い、富み栄えた。
旧約聖書「歴代志上」
美徳は自信を生み、自信は熱中を生む。そして熱中は世界を征服する。
ウォルター・H・コッティンガム