Невозможно изменить переменную класса - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь переключаться между двумя игроками в классе «Матч». Но я не могу понять, почему он не работает ... Кажется, он только изменяет переменную localy внутри функции switchPlayer ().

int main() {
Game game = Game();
cout << game.getMatch().getCurrentPlayer()->getName() << endl;
game.getMatch().switchPlayer();
cout << game.getMatch().getCurrentPlayer()->getName() << endl;
}

class Match {
    public:
        Match();
        Player* getCurrentPlayer() const;
        void switchPlayer();
    private:
        Player* player1; //White
        Player* player2; //Black
        int currentPlayer;
};

Player* Match::getCurrentPlayer() const{
    switch (currentPlayer)
    {
        case 1:
            return player1;
        case 2:
            return player2;
        default:
            cout << "joueurs qui n'existe pas" << endl;
            return player1;
    }
}
void Match::switchPlayer() {
     cout << currentPlayer << endl;
     currentPlayer = currentPlayer == 1 ? 2 : 1;
     cout << currentPlayer << endl;
}

Terminal: Marie 1 2 Mar ie

...