値/ポインター/参照による受け渡しについて、一度だけ明確にする必要があります。
次のような変数がある場合
int SomeInt = 10;
そして、それを次のような関数に渡したい
void DoSomething(int Integer)
{
Integer = 1;
}
私の現在のシナリオでは、SomeInt を DoSomething() に渡すときに、DoSomething() 内で何を行ったかに基づいて SomeInt の値を更新し、メモリとパフォーマンスを最も効率的にしたいので、変数をコピーしませんか? . そうは言っても、次のプロトタイプのどれがこのタスクを達成するでしょうか?
void DoSomething(int* Integer);
void DoSomething(int& Integer);
実際に変数を関数に渡すにはどうすればよいですか? 前の 2 つのプロトタイプの違いは何ですか?
最後に、クラス内で関数を使用する場合
class SomeClass
{
int MyInteger;
public:
void ChangeValue(int& NewValue)
{
MyInteger = NewValue;
}
};
整数を ChangeValue に渡すと、渡した整数が削除されたときに、クラス内から MyInteger を使用しようとすると使用できなくなりますか?
お時間をいただきありがとうございます。これが基本的な質問であることは承知していますが、何度も出くわす説明が私をさらに混乱させます。