我是编码的新手,并决定玩游戏!我最近添加了一个饥饿功能,所以我做了一个功能,以增加饥饿,然后检查它是否已达到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。 我该如何解决这个问题?
答案 0 :(得分:1)
将hunger
作为参考:
double addHunger(double &hunger,int add)
答案 1 :(得分:0)
当您调用将它们用作参数的函数时,将复制诸如双精度的原始值。这意味着当您进入addHunger函数时,您只能访问饥饿变量的新副本。更改其值不会影响主函数中饥饿变量的值。