Получение значения переменной из private

Итак, я новичок в С++, прохожу курс Бена Тристема, в одном из проектов есть такая вот загвоздка. Имеется класс (в файле FBullCowGame.h):

class FBullCowGame
{
public:
    int GetMaxTries();
private:
    int MyMaxTries = 5;
}

Далее, в файле FBullCowGame.cpp прописываем что метод GetMaxTries() делает:

int FBullCowGame::GetMaxTries() { return MyMaxTries; }

Потом в главном файле main.cpp получаем объект этого класса, ну и наконец применяем его в уже имеющейся функции PlayGame(), которая также находится в main.cpp

void PlayGame()
{
    // получаем значение значение переменной MyMaxTries через метод GetMaxTries()
    int MaxTries = BCGame.GetMaxTries();
    std::cout << MaxTries << std::endl;

    // пока попытки не кончились - просим юзера ввести догадку
    for (int count = 1; count <= MaxTries; count++)
    {
        std::string Guess = GetGuess(); // GetGuess() - функция, просящая юзера ввести догадку
        // выводим догадку пользователю обратно
        std::cout << "Your guess was: " << Guess << std::endl;
        std::cout << std::endl;
        return;
    }
}

И вот тут и кроется суть вопроса: переменная MaxTries возвращает 5 (если попробовать её вывести), но условие цикла count <= MaxTries не работает. Я могу ввести только 1 догадку вместо 5. Бен сказал, что компилятору C++ доверять нельзя, а потому надо пересобрать проект, но я пересобрал как проект, так и решение, и как вы поняли, мне это не помогло. Работаю в Visual Studio C++ 2019 Community.


Ответы (1 шт):

Автор решения: user398173

У вас return в цикле, уберите его оттуда и всё будет работать.

Ещё непонятно как из того, что Бен сказал, что компилятору C++ доверять нельзя следует а потому надо пересобрать проект.

→ Ссылка