(C++) 指向不同类中对象的指针的指针
(C++) Pointers to Pointers of objects in different classes
everyone.我正在为学校做一个最终项目,进展顺利,但是我在尝试使用指向指针的指针时遇到了一些问题。我将尽力解释以下问题:
所以我有一个名为 Player 的类,它看起来像这样:
class Player
{
Player();
int health;
void adjustHealth(int);
};
Player::Player()
{
health = 40;
}
void Player::adjustHealth(int adjust)
{
health += adjust;
}
我还有另一个叫做Shelter的类,其中包括"Player.h",看起来有点像这样:
class Shelter
{
Shelter();
Player* player; // Create a pointer to Player class.
};
在 Shelter 头文件中,我的默认构造函数中有以下内容:
Shelter::Shelter()
{
...Other code here.
player = new Player();
}
在 Shelter 头文件中,我将这个新播放器用于以下操作:
player->adjustHealth(-1); // Subtract one health from the player.
效果很好。
我面临的问题是创建另一个名为 Church 的类,它位于单独的头文件中,并在游戏中充当单独的位置。我希望 Church 使用与 Shelter 相同的玩家,因此它具有所有相同的统计数据等,而不是在 Church 中创建一个新玩家(这是我在 Shelter.h 中所做的)。
现在,我有这样的东西:
class Church
{
Church();
Shelter **cplayer; // This is supposed to be the pointer to the pointer.
};
默认构造函数是我遇到问题的地方。我想使用《避难所》中的同一名球员,而不是像在《避难所》中那样创建一个新球员。
Church::Church
{
What should I do here?
}
我已经尝试了很多事情,但我不能完全让它工作。最终我希望能够做这样的事情:
player->adjustHealth(-1); // Subtract one health from the player.
仅在 Church 中,因此无论玩家在哪个位置,都会调整玩家的属性,例如生命值。
我希望我的问题有意义。如果没有,我可以尝试更好地澄清。无论如何,提前感谢。
我面临的问题是创建另一个名为 Church 的类,该类位于单独的头文件中,并在游戏中充当单独的位置。我希望 Church 使用与 Shelter 相同的玩家,因此它具有所有相同的统计数据等,而不是在 Church 中创建新玩家
这听起来像是使用std::shared_ptr
的理想情况。
class Shelter
{
Shelter();
std::shared_ptr<Player> player; // Create a pointer to Player class.
// Provide a public accessor
public:
std::shared_Ptr<Player> getPlayer() const { return player; }
};
和
class Church
{
Church(std::shared_ptr<Player> pl) : player(pl) {}
std::shared_ptr<Player> player;
// You haven't explained in your post why you need this.
// Maybe you don't need it.
// Shelter** shelter;
};
相关文章:
- 为什么指针对象没有调用默认构造函数
- 如何访问双指针对象中的方法
- 如何使用智能指针对象执行成员函数指针
- 调用带有指针对象错误的指针变量
- 如何从模板类重载创建的指针对象上的运算符?
- C++指针对象的运算符重载
- 如何初始化数组指针对象
- 如何打印出唯一指针对象向量中的值(基于范围的循环)?C++
- C++指针对象差异
- 涉及继承,指针对象的交易以及何时进行的问题
- 表达式必须在C 中具有指针对象类型
- 下标需要数组或指针类型表达式必须具有指针对象类型
- 字符指针对象和相应的字符数组元素比较
- 如何在 c++ 中克隆为弱指针对象
- 指针对象使用CPP中的指针表达式进行比较
- Visual Studio中智能指针对象的自定义视图
- 使用指针 /对象 /模板参数正确构成
- 如果我确定只有一个线程一次处理指针/对象,则C/C 仍应使用同步
- 如何将值分配给指针对象 c++
- 更改智能指针对象,然后访问它