在另一个类中使用一个类的变量(都是从抽象类定义的)

时间:2014-08-09 01:51:26

标签: c++

我使用两个抽象类作为GamePlayer作为游戏的接口 (我们称之为XX):

class Game --> class XXGame: public Game
class Player --> class XXPlayer: public Player 

我在另一个名为

的班级中控制游戏
class GameControl

XXGame中有一个成员函数(在其接口Game中的重载版本):

1-   int XXGame::play(char* bet, int amount);

我在GameControl.cpp中称它给我一轮游戏的结果。 但我还需要在XXPlayer的成员函数中使用该成员函数作为:

2-    bool XXPlayer::play(int numberOfTimes);

正如您所看到的,只有int numberOfTimes作为函数(2)的参数。 但是我需要在函数(2)中调用函数(1)。我在类Game中创建了一个指向XXPlayer的指针:

Game* _gamep;

但我仍然不知道如何访问GameControl中使用的函数(1)中的参数并在函数(2)中使用它们因为我对抽象类有限。 实际上使用函数(1)及其参数对函数(2)来说非常重要,我当然不应该改变接口的结构。

2 个答案:

答案 0 :(得分:0)

如果您需要做一些古怪的事情,我认为您需要重新考虑您的设计。为什么要以这种限制方式定义接口?如果两个游戏功能如此相互依赖,为什么它们是分开的。

答案 1 :(得分:0)

可以XXPlayerWWGame游戏吗?

没有?然后指针_gamep首先应该是XXGame类型。在分配时,您可以执行从GameXXGame的动态广播(请注意,如果它不是XXGame实例,则可能会失败)并且内部XXPlayer可以访问相应游戏类的游戏类型特定的扩展界面。

只要局外人不知道XXPlayer存在,作为专业化,抽象Player接口就完全履行了隐藏细节的角色。请注意,您还应该通过使用工厂模式隐藏XXPlayerXXGame,以便调用代码仅将它们视为抽象GamePlayer。< / p>