将变量从main传递到公共类函数?

时间:2018-07-04 04:08:02

标签: c++ c++11

我想知道在这种情况下如何将变量从main传递给公共类函数。在这种情况下,健康变量根本不会更改,即使它应该更改。这是我的代码:

class PlayerCharacter
{
public:
    void SetHealth(int Health)
{
    m_health = Health;
}
int GetHealth()
{
    return m_health;
}
private:
int m_health;
int m_maxhealth;
};


int main()
{
    PlayerCharacter PC;
    bool playing = true;
    int Choice;
    int v1;
    int v2;
    while (playing)
    {
        PrintMainMenu();
        cout << "Set Health And Max Health" << endl;
        cin >> Choice;
        v1 = Choice;
        cin >> Choice;
        v2 = Choice;
        PC.SetHealth(v1);
        PC.SetMaxHealth(v2);

        system("CLS");
    }
return 0;
}

我这里缺少什么吗?谢谢。

编辑:All of my code

3 个答案:

答案 0 :(得分:2)

通过代码链接,您的PrintMainMenu()函数每次都创建一个全新的Character。它与main()中正在编辑的内容无关。

您应该更改它以接受Character作为参考,并使用它来打印统计信息:

void PrintMainMenu(Character& PC) {
  ...
}

答案 1 :(得分:0)

您可以尝试使用getline(cin,input)代替cin >>,因为直接用cin读取不是安全的类型,据我所知,它不会删除换行符。另外,它不执行长度检查。因此,已经有一段时间不使用C ++了,但是如果我没记错的话,getline可以更好地工作。

getline (cin, Choice);

答案 2 :(得分:0)

在功能void PrintMainMenu()中,您正在创建一个新角色。 您需要将来自main的有关角色的引用传递给该函数。