需要代码方面的帮助,以便它返回并显示 "Menu"

Need assistance with code so that it comes back and displays the "Menu"

我正在做一个小项目,使用变量和 classes:

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 中声明的变量值,即 class water

在您的 main 函数中,您创建了一个名为 w1water 对象,这就是您正在使用的对象。当您在该对象上调用函数(例如 add_phadd_temp)并再次调用 water() 时,不会重建 w1 对象:您正在创建一个 new water 对象,构造它然后立即销毁它。您可以通过在 water::waterwater::~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;
}

请注意,此答案基于链接的代码和您的原始问题。