c++ - 如何创建函数来操作具有受保护或私有属性的对象内部的对象?
问题描述
我正在尝试了解类/继承(一般而言),因此我正在尝试将游戏制作为学期的期末项目。
假设我有一个SOLDIER类,其对象是类INVENTORY,对象是类POTION(具有大小和数量)。
如果我想创建一个函数 use_potion(),我该怎么做?我可以公开所有内容以制作类似“soldier1.addlife(soldier1->inventory1->potion1->size) 的内容,但这看起来是一种糟糕的做法。我如何使用私有/受保护的属性来实现它?
*药水只是我需要用相同结构制作的功能中的一种——object->object->object->something——,所以我真的需要一些帮助和示例来了解如何制作它们。
解决方案
您需要在您的 SOLDIER 类中添加一个公共函数,该函数调用 INVENTORY 对象中的公共函数,该对象调用 POTION obj 中的公共函数。
这是您的程序的示例结构:
class SOLDIER
{
private:
class INVENTORY
{
private:
class POTION
{
int size = 5;
public:
void use_potion()
{
size++;
printf("use_potion in POTION obj");
}
};
POTION pot;
public:
void use_potion()
{
pot.use_potion();
}
};
INVENTORY inv;
public:
void use_potion()
{
inv.use_potion();
}
};
int main()
{
SOLDIER s;
s.use_potion();
return 0;
}