gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:50:44 26 4
gpt4 key购买 nike

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

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

不管怎么说,我的问题是我有一个类“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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com