私は参照を理解しようとしています。
mはFooの中でFが割り当てられ、fooが終了したときにfが、Fooの中でスタック上に作成され、Fとそれが指すメモリはなりませんので、したがって、次のプログラム...この参照は無効になりますか?
void Foo(std::string& m)
{
std::string f = "Foo Stack Content";
m = f;
}
int main()
{
std::string m = "Main Stack Content";
Foo(m);
std::cout << m << std::endl;
}
を与えられましたもう有効です。それは今でもmも無効だということですか?
参照を割り当てませんでした。値を割り当てた(そして、プロセスで 'std :: string'をコピー割り当てしました)。一度バインドされると、参照を変更することはできません。 – WhozCraig
それはどのように動作するのですか?リファレンスは有効です。文字列fが参照によってFooに渡された文字列mにコピーされているからです。 – user