以下のコード スニペットを見てください。3 つの関数を宣言しました (つまり、1 つは int を渡し、もう 1 つは int への参照を渡します)。プログラムを実行した後、関数 (tripleByReference) を呼び出した後の "count" 変数の値が、そのトリプルを反映するように変更されていないことがわかりました (count は 5 のままです)。ただし、関数 (tripleByReferenceVoid) を呼び出すと変数が変更されますが、これは、変更が変数 (カウント) に直接発生したためです。
参照渡しを使用すると、呼び出し元は呼び出された関数に呼び出し元のデータに直接アクセスして変更する機能を与えることを理解していますが、変数を関数に渡すことでは実現できませんでした (tripleByReference) - これを理解するのを手伝ってください。
#include <iostream>
using namespace std;
/* function Prototypes */
int tripleByValue(int);
int tripleByReference(int &);
void tripleByReferenceVoid(int &);
int main(void)
{
int count = 5;
//call by value
cout << "Value of count before passing by value is: " << count << endl;
cout << "Passing " << count << " by value, output is: "
<< tripleByValue(count) << endl;
cout << "Value of count after passing by value is: " << count << endl;
//call by reference - using int tripleByReference
cout << "\n\nValue of count before passing by reference is: " << count << endl;
cout << "Passing " << count << " by reference, output is: "
<< tripleByReference(count) << endl;
cout << "Value of count after passing by reference is: " << count << endl;
//call by reference - using void tripleByReference
tripleByReferenceVoid(count);
cout << "\n\nValue of count after passing by reference is: " << count << endl;
cout << endl;
system("PAUSE");
return 0;
}//end main
int tripleByValue (int count) {
int result = count * count * count;
return result;
}//end tirpleByValue function
int tripleByReference(int &count) {
int result = count * count * count;
return result; //perform calcs
}//end tripleByReference function
void tripleByReferenceVoid(int &count) {
count *= count * count;
}//end tripleByReference function
ありがとうございました。