我正在尝试创建一个二十一点模拟器。在将牌发给玩家和经销商之前,我需要洗牌。 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());
}
答案 0 :(得分:0)
您正在访问班级Deck
而不是Deck
的实例!
(我想你的Deck
课程并不是一个singelton。它不应该是一个singelton!)。
我想您希望在班级Deck
中拥有Game
类型的成员:
class Game:
{
...
private:
Deck my_deck;
}
你可以在你的交易方法中使用
void Game::deal()
{
...
myDeck.shuffleDeck();
...
}