0

私はコーディングが初めてで、楽しみのためにゲームを作ることにしました! 最近、満腹度機能を追加したので、満腹度を上げる機能を作り、満腹度が10になったらチェック(ゲームオーバー)します。正しい空腹量を適切に表示しますが、正しい空腹レベルを空腹変数に保存しません。

double addHunger(double hunger,int add)
{
hunger = hunger+add;
if (hunger >= 10)
{
    cout <<"\n\nGame over! You starved to death, havn't you heard of eating you moronic idiot?\n";
    exit(1);
}
else
{   
    cout <<"\n\nYou feel your stomach growl. Your hunger is now " <<hunger<<"\n\n";
}
} 

たとえば、もともと満腹度が6で、この関数を実装して1つ追加すると、満腹度が7になったと表示されますが、本体ではまだ6のままです。つまり、空腹度を1減らすと、 6 ではなく 5 になります。これを修正するにはどうすればよいですか?

4

2 に答える 2

0

double などのプリミティブ値は、それらを引数として使用する関数を呼び出すとコピーされます。つまり、 addHunger 関数内にいるときは、空腹変数の新しいコピーにしかアクセスできません。その値を変更しても、メイン関数の空腹変数の値には影響しません。

于 2013-11-14T18:43:42.370 に答える