Для проекта я делаю простую текстовую боевую игру на C++, с которой я не очень-то знаком.Доступ к строке дает пустое значение, даже если оно назначено
У меня возникли проблемы с возвращением имени игрока в игровой контроллер. Используя функцию просмотра визуальной студии, я вижу, что имя задается при построении, но когда я пытаюсь получить доступ к ней в вызове getName, он пуст. Вероятно, это имеет какое-то отношение к указателям, но я не уверен.
Код и рисунки ниже.
Game.cpp
#include "Game.h"
Game::Game()
{
Player user = Player("Foo");
gameLoop();
}
void Game::gameLoop()
{
std::string name = user.getName();
printf("name: %s", name.c_str());
}
Game.h
#include <stdio.h>
#include <string>
#include "Player.h"
class Game
{
public:
Game();
private:
Player user;
void gameLoop();
};
Player.cpp
#include "Player.h"
Player::Player(std::string name)
{
playerName = name;
}
std::string Player::getName() {
std::string nameWatch = playerName;
return playerName;
}
Player.h
#include <stdio.h>
#include <stdlib.h>
#include <string>
class Player
{
public:
Player(std::string name);
Player() {}
std::string getName();
private:
std::string playerName;
};
[1
[2
Здравствуйте, спасибо, что ответили так быстро - теперь я вижу, что я сделал неправильно. Теперь я понимаю, что я переписывал конструктор Player Player заголовка. Однако, если у меня было несколько игроков, ваше решение казалось немного сложнее. Теперь я использую это, и кажется, все в порядке. \t «код» пользователь = игрок («игрок»); comp = Player ("Monster"); 'code' – CrhonamO
@ user1972995: Код окружения по обратной цитате, чтобы выделить их на SO. Отредактировано для обработки нескольких участников. – Jarod42