c++ - 可从多个文件和函数访问的类值 c++

标签 c++ class

如果之前有人问过这个问题,我先道歉。

我把我所有的技能都用​​在了谷歌上,但仍然一无所获,所以如果这个问题之前已经回答过,请只链接答案,我基本上会结束这个问题。

不管怎么说,我的问题是我有一个类“Player.hpp”和一个相应的“Player.cpp”,我在其中定义了我可以初始化的“玩家”的位置系统值很好(这是该类的函数之一)但是当我使用该函数时玩家转到“play()”函数(它包含游戏的骨骼并且位于另一个 .cpp 文件中)要获取我存储的位置,没有存储任何内容...任何帮助将不胜感激。

如果您不明白我在问什么,请发表评论,我会详细说明。

代码如下:

//Player.hpp
class player
{
public:
    std::string getLocation();
    void setLocation(std::string local);
    void initLocation();

private:
    std::string location;
};

//Player.cpp
void player::initLocation()
{
    player::location = "B0";
    return;
}
std::string player::getLocation()
{
    return player::location;
}
void player::setLocation(std::string local)
{
    player::location = local;
    return;
}

//Main.cpp
//....
player plays;
plays.initLocation();
//....

//Game.cpp
//...
player plays;
std::string local = plays.getLocation(); //When I check there isn't a value that gets stored...
if(local.find(...)...)

再次感谢任何帮助,如果已经有人问过这样的问题,我深表歉意。

编辑:

我想我应该澄清一下,我还想更改存储的值,因为 player 从一个房间到另一个房间(因为这是我正在制作的 zork 风格的游戏)

最佳答案

假设 player 的每个实例都位于单独的位置,您可以通过在其构造函数中使用默认位置初始化 player 的位置来解决此问题。这消除了对 initLocation() 的需要,因此无需从 Main.cpp 调用它。

//Player.hpp
class player
{
public:
    std::string getLocation();
    void setLocation(std::string local);

    player () : location("B0") {}

private:
    std::string location;
};

关于c++ - 可从多个文件和函数访问的类值 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18392374/

相关文章:

c++ - 缺少后缀时编译器选择前缀++ - 谁说的?

c++ - 关于cppreference.com对decltype解释的2个问题

c++ - 内存保守最大独立顶点集

Python 不直观的成员变量行为

php - PHP 抽象类的子类中的类型安全/类型提示

c# - 如何在 C# 中将 const 参数传递给抽象类父类?

c++ - 使用 libc++ 在 Mac Yosemite 上访问 std::string 成员时出现链接错误

c++ - glDrawElements 崩溃(OpenGL 3.2/Windows 7)

ios - 创建 API 类来处理 JSON 数据 Swift

Java - 尝试理解码合