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,这意味着如果你减少一个饥饿,它将下降到 5 而不是 6。我该如何解决这个问题?

4

2 回答 2

1

Make hunger a reference:

double addHunger(double &hunger,int add)
于 2013-11-14T18:41:24.777 回答
0

当您调用将它们用作参数的函数时,会复制诸如双精度值之类的原始值。这意味着当您在 addHunger 函数中时,您只能访问饥饿变量的新副本。更改其值不会影响主函数中饥饿变量的值。

于 2013-11-14T18:43:42.370 回答