可从多个文件和函数c++访问的类值
Class value accessible from multiple files and functions c++
如果以前有人问过这个问题,我深表歉意。
我把我所有的技能都用在了谷歌上,但仍然没有,所以如果这个问题以前已经回答过,请把答案链接起来,我基本上会结束这个问题。
不管怎样,有了这些,我的问题是我有一节课"Player.hpp";以及相应的";Player.cpp";其中我已经定义了";玩家";我可以初始化值fine(这是类的函数之一),但当玩家转到"fine"时;播放()"函数(它保存游戏的骨骼,位于另一个.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;
};
看起来好像在类变量声明前面省略了static
:
class player
{
// ...
static std::string location;
};
这也需要一个定义。当然,定义也成为初始化值的主要位置:
// Player.cpp
std:string player::location("B0");
使得不需要初始化功能。
相关文章:
- 通过方法访问结构
- 使用不带参数的函数访问结构元素
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- 用于访问容器<T>数据成员的正确 API
- 访问者访问变体并返回不同类型时出错
- 尝试通过多个向量访问变量时,向量下标超出范围
- 无法访问嵌套类.类的使用无效
- 写入位置0x0000000C时发生访问冲突
- 我们可以访问一个不存在的联盟的成员吗
- C++从另一个类访问公共静态向量的正确方法是什么
- 我的简单if-else语句是如何无法访问的代码
- 从C++dll访问C#中的一行主要参数
- 概念TS检查忽略私有访问修饰符
- 访问被拒绝后,c++中的故障保护代码
- 在c++中访问int到类对象的映射时出错
- 我想访问std::unique_ptr中的一个特定元素
- 为什么示例代码访问IUnknown中已删除的内存
- C++:无法访问声明的受保护成员
- 通过指向指针数组的指针访问子类的属性
- 如何使用单独文件中的派生类访问友元函数对象