从另一个类调用成员函数

时间:2016-03-08 10:45:23

标签: c++ class

我正在尝试创建一个二十一点模拟器。在将牌发给玩家和经销商之前,我需要洗牌。 shuffleDeck是一个void函数,dealCard在类Deck中的类型为Card。类Card存储从类Deck处理的卡片。在游戏开始时,我需要向玩家和经销商发放两张牌。 当我尝试访问类Deck中的Game的成员函数时,我收到错误消息"调用非静态成员函数而没有对象参数"。调用成员函数的正确方法是什么?我对语法感到很困惑。

void Game::deal()
{
    // shuffle deck
    // deal two cards to the player and two to the dealer
    Deck::shuffleDeck();
    Player::acceptCard (Deck::dealCard());
}

1 个答案:

答案 0 :(得分:0)

您正在访问班级Deck而不是Deck的实例! (我想你的Deck课程并不是一个singelton。它不应该是一个singelton!)。

我想您希望在班级Deck中拥有Game类型的成员:

class Game:
{
...
private:
 Deck my_deck;
}

你可以在你的交易方法中使用

void Game::deal()
{
    ...
    myDeck.shuffleDeck();
    ...
}