我正在尝试学习类/继承性(通常),因此我试图将一个游戏作为一个学期的期末项目。
假设我有一个士兵类,其对象为库存类,其对象为 POTION 类(具有大小和数量) )。
如果要创建一个功能use_potion(),该怎么做?我可以公开发布所有内容,例如“ soldier1.addlife(soldier1-> inventory1-> potion1-> size),但这看起来很糟糕。我如何使用私有/受保护的属性来实现它?
*该药水只是我需要使用相同结构的功能之一- object-> object-> object-> something -,所以我确实需要一些帮助和示例来了解如何制作它们。
答案 0 :(得分:1)
您需要在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;
}