【发布时间】:2015-11-03 23:27:46
【问题描述】:
对于一个项目,我正在用 C++ 制作一个简单的基于文本的战斗游戏,但我并不十分熟悉。
我在将玩家姓名返回到游戏控制器时遇到问题。 使用 Visual Studio 的监视功能,我可以看到在构造时正在设置名称,但是当我尝试在“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
【问题讨论】: