如何创建函数来处理具有受保护属性或私有属性的对象中的对象?

时间:2019-05-18 17:55:00

标签: c++

我正在尝试学习类/继承性(通常),因此我试图将一个游戏作为一个学期的期末项目。

假设我有一个士兵类,其对象为库存类,其对象为 POTION 类(具有大小和数量) )。

如果要创建一个功能use_potion(),该怎么做?我可以公开发布所有内容,例如“ soldier1.addlife(soldier1-> inventory1-> potion1-> size),但这看起来很糟糕。我如何使用私有/受保护的属性来实现它?

*该药水只是我需要使用相同结构的功能之一- object-> object-> object-> something -,所以我确实需要一些帮助和示例来了解如何制作它们。

1 个答案:

答案 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;
}