需要代码方面的帮助,以便它返回并显示 "Menu"
Need assistance with code so that it comes back and displays the "Menu"
我正在做一个小项目,使用变量和 classes:
当我使用默认构造函数更改变量时,它们的值不会改变。
water::water()
{
cout<<"What would you like to do?"<<endl;
cout<<"0. Get current stats of water"<<endl;
cout<<"1. Raise water temperature by certain degrees"<<endl;
cout<<"2. Decrease water temperature by certain degrees"<<endl;
cin >> do_what;
cout<<do_what;
switch(do_what)
{
case 0 :check_status();
break;
case 1 :heat_water();
break;
default:cout<<"Enter proper value!"<<endl;
//system("cls");
//water();
break;
}
}
这是默认构造函数。它无法更改在其主要 class 中声明的变量值,即 class water
在您的 main
函数中,您创建了一个名为 w1
的 water
对象,这就是您正在使用的对象。当您在该对象上调用函数(例如 add_ph
、add_temp
)并再次调用 water()
时,不会重建 w1
对象:您正在创建一个 new water
对象,构造它然后立即销毁它。您可以通过在 water::water
和 water::~water
(分别是构造函数和析构函数)中放置一个断点来看到这一点。
如果您尝试修改原始 water
对象,w1
,您应该创建一个 Reset
函数,它将事物重置为您想要的(我假设是打印控制台内容并再次要求用户输入?)。
您可能还想尝试以下操作:
int main()
{
// create water object to work with
water w1;
char input = 'Q';
do
{
// Ask user for input
input = AskForInput();
ProcessInput(input, w1);
// Process input until the user wishes to quit
} while (input != 'Q')
return 0;
}
请注意,此答案基于链接的代码和您的原始问题。
我正在做一个小项目,使用变量和 classes:
当我使用默认构造函数更改变量时,它们的值不会改变。
water::water()
{
cout<<"What would you like to do?"<<endl;
cout<<"0. Get current stats of water"<<endl;
cout<<"1. Raise water temperature by certain degrees"<<endl;
cout<<"2. Decrease water temperature by certain degrees"<<endl;
cin >> do_what;
cout<<do_what;
switch(do_what)
{
case 0 :check_status();
break;
case 1 :heat_water();
break;
default:cout<<"Enter proper value!"<<endl;
//system("cls");
//water();
break;
}
}
这是默认构造函数。它无法更改在其主要 class 中声明的变量值,即 class water
在您的 main
函数中,您创建了一个名为 w1
的 water
对象,这就是您正在使用的对象。当您在该对象上调用函数(例如 add_ph
、add_temp
)并再次调用 water()
时,不会重建 w1
对象:您正在创建一个 new water
对象,构造它然后立即销毁它。您可以通过在 water::water
和 water::~water
(分别是构造函数和析构函数)中放置一个断点来看到这一点。
如果您尝试修改原始 water
对象,w1
,您应该创建一个 Reset
函数,它将事物重置为您想要的(我假设是打印控制台内容并再次要求用户输入?)。
您可能还想尝试以下操作:
int main()
{
// create water object to work with
water w1;
char input = 'Q';
do
{
// Ask user for input
input = AskForInput();
ProcessInput(input, w1);
// Process input until the user wishes to quit
} while (input != 'Q')
return 0;
}
请注意,此答案基于链接的代码和您的原始问题。