我正在使用变量和类制作一个小项目:
http://pastebin.com/NpU6E4e5
当我使用默认构造函数更改变量时,其值不会更改。
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 water
中声明的变量值 最佳答案
在main
函数中,您将创建一个名为water
的w1
对象。当您在THAT对象上调用函数(例如add_ph
,add_temp
)并再次调用water()
时,这不会重新构造w1
对象:您正在创建一个新的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;
}
请注意,此答案基于链接的代码和您的原始问题。
关于c++ - 需要代码方面的帮助,以便它返回并显示 “Menu”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29910519/