Получение значения переменной из 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 шт):
У вас return в цикле, уберите его оттуда и всё будет работать.
Ещё непонятно как из того, что Бен сказал, что компилятору C++ доверять нельзя следует а потому надо пересобрать проект.