gpt4 book ai didi

c++ - 如何避免 C++ 中类内类的包装函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:37 25 4
gpt4 key购买 nike

*仅供引用 - 我正在从事介绍性 OOP 项目。这似乎是一个基本问题,但我在任何地方都找不到明确的解释。

我试图在调用作为其他对象的私有(private)数据成员的对象的成员函数时避免包装函数。下面我创建了一个简单的说明来说明我的意思。有一个顶级 Game_Manager 对象包含 2 个 Player 对象,每个对象包含一个 Weapon 对象。

Game_Manager 知道玩家的武器何时应该攻击。有没有办法避免播放器中的包装器功能?这只是糟糕的设计吗?

class Weapon
{
public:
void attack();
};

class Player
{
public:
void attack()
{
weapon.attack();
}

private:
Weapon weapon;
};

class Game_Manager
{
public:
time_for_first_player_to_attack()
{
player_1.attack();
}

private:
Player player_1;
Player player_2;
};

最佳答案

也许

class Player
{
public:
Weapon getWeapon() { return weapon; } const;

private:
Weapon weapon;
};


class Game_Manager
{
public:
time_for_first_player_to_attack()
{
player_1.getWeapon().attack();
}

private:
Player player_1;
Player player_2;
};

关于c++ - 如何避免 C++ 中类内类的包装函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19722429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com