如何修改类中的值?(C++)

GDN*_*DN9 3 c++

我只是试图从主文件中添加或减去类中的值,但似乎总是将此值重置为零.作为初学者,我真的不明白为什么?!每次我打印player.worldPositionY它说要么-1,1,或0(如果既不1或2个被选定- moveForward或moveBack)

我有两个简单的文件,Main.cpp:

#include <iostream>
#include "player.h"

using namespace std;

int keyboardInput;

int main()
{
    Player player;

    cin.get();
    cin >> keyboardInput;

    if (keyboardInput == 1){
        player.moveForward();
    } else if (keyboardInput == 2){
        player.moveBack();
    }

    cout << "Y: " << player.worldPositionY << endl;
    main();
}
Run Code Online (Sandbox Code Playgroud)

还有一个玩家:

class Player {
public:
    int worldPositionY = 0;

    void moveForward();
    void moveBack();
};

void Player::moveForward(){worldPositionY += 1;}

void Player::moveBack(){worldPositionY -= 1;}
Run Code Online (Sandbox Code Playgroud)

我显然遗漏了一些东西.请帮忙!

Col*_*ett 6

你是main递归地打电话的.你不想这样做,而是这样做:

int main()
{
    Player player;

    while (true)
    {
        cin.get();
        cin >> keyboardInput;

        if (keyboardInput == 1){
            player.moveForward();
        } else if (keyboardInput == 2){
            player.moveBack();
        }

        cout << "Y: " << player.worldPositionY << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

调用main递归意味着你的player目标是重新创建每次输入一个值,这就是为什么你的价值观总是要么-11.