gpt4 book ai didi

c++ - 循环后保留一个值

转载 作者:行者123 更新时间:2023-11-28 00:38:45 25 4
gpt4 key购买 nike

基本上,我正在生成扑克游戏的框架。我只是想让投注系统崩溃。我在我的代码中偶然发现的是我的 int 的值不断恢复到它们的原始状态 (100)。我显然做错了什么,这就是我的问题(我做错了什么,我能做些什么来解决它)。

class BetSys
{
public:
int loseM;
int bet;
int earn;
int money;
int Tmoney;
int Omoney;
void Loop();
void Flow();
void Game();

};

void BetSys::Loop()
{
int Omoney = 100;
int bet = 0;
int loseM = 0;
loseM = loseM + bet;
cout << "Your start money = " << Omoney << " \n\n\n" << endl;
Game();

}

void BetSys::Game()
{
bool win;
bool lose;
int Omoney = 100;
int* PointMon = &Omoney;
int money = 0;
int Tmoney = 0;
int bet = 0;
int earn = (bet * 2) + *PointMon;
int loseM = 0;
cout << "Place your bet here!" << endl;
cin >> bet;


money = *PointMon - bet;
cout << "Your total money after bet is " << money << "\n\n";


//betP(int money)
//{
// money - bet = money;
//}
if (bet > 10)
{
win = true;
if (win)
{
cout << "YOU WIN! \n\n" << endl;
/*earn = (earn) + Omoney;*/
cout << "You earned: \n" << earn;
Tmoney = earn + (*PointMon - bet);
cout << "\nTotal money: \n" << Tmoney;
}
}
else if (bet <= 10)
{
lose = true;
if (lose)
{
cout << "You Lose!\n\n\n" << endl;
int Mlose= loseM + bet;
cout << "You lost: \n" << Mlose;
Tmoney = loseM + (*PointMon - bet);
cout << "\nTotal money: \n" << Tmoney;
cout << "\n\n\n\n";
*PointMon = Tmoney;
//for(int i = 0, i > 20, i++)
//{
// int i=10;
//}
Flow();

}
}
}
void BetSys::Flow()
{
Game();
}

最佳答案

您在 BetSys::Game()BetSys::Loop() 中将 int Omoney 声明为类成员和局部变量.您本地的人正在隐藏类(class)成员。

您需要删除它们。使用初始化列表在构造函数中初始化类成员。

编辑

为你的类添加一个显式公共(public)构造函数

...
void Flow();
void Game();
BetSys();

像这样定义它:

BetSys::BetSys() : Omoney(100) {
cout << "Omoney inited to " << Omoney << endl;
}

当您创建该类的实例时,Omoney inited to 100 将被打印!

关于c++ - 循环后保留一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19882398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com