[英]Friend has access to friend's member, but can't seem to update friend's member
在Dealer类中,我将Player声明为朋友类。 请注意,deck是经销商会员,并且我具有以下经销商功能:
deque<pair<int, string>> Dealer::deal(int numOfCards){
deque<pair<int, string>> dealtCards;
for (int i = 1; i <= numOfCards; i++)
{
dealtCards.push_back(deck.front());
deck.pop_front(); // once a card is dealt, delete it from the deck
}
return(dealtCards);
}
当我直接调用此函数时,例如在main()中,将相应地更新牌组(删除前面的卡)。 但是,当我从Player类调用此函数时,发牌人的甲板成员不会更新。 例如,我期望此功能更新Dealer牌组,但不是:
Player::Player(Dealer dealer, int numOfCards){// deal numOfCards to player
holeCards = dealer.deal(numOfCards);
}
我看不出有什么区别。 玩家确实有权访问经销商的私人会员卡套,因为我可以看到HoleCard已正确更新。 但是由于某种原因,该构造函数没有执行Deal函数的pop_front()部分。 我究竟做错了什么? 谢谢!
更改
Player::Player(Dealer dealer, int numOfCards)
至
Player::Player(Dealer &dealer, int numOfCards)
如果您想了解更多信息,请参考参考示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.