我正在用 C++ 制作一个扑克概率程序。该程序将制作一副牌,洗牌,发五张牌,然后确定你的手牌类型。这将运行 16000 次并估计出现的平均手数。
我做了三个课程,一个卡片课程,一个甲板课程和一个手牌课程。card 类有一个花色的字符和一个等级的 int,deck 类有一个需要私有的 52 张卡片的向量,hand 类有一个 5 卡片的向量,也需要是私有成员。现在甲板类需要有一个 dealHand() 函数,它将甲板的前五张牌复制到手向量中,但是当手向量需要是私有的并且不能从甲板类访问时我怎么能这样做?
这是我的甲板课
class deck
{
public:
deck();
void shuffle();
hand dealHand();
void printDeck();
private:
vector<card> deckData;
void loadDeck();
};
这是我的手课
class hand
{
public:
hand();
void printHand();
private:
vector<card>handData;
void initHand();
};
这是我的 dealHand 函数的定义
hand deck::dealHand()
{
hand hand;
for(int j=0; j<5; j++)
{
hand.handData[j].suit = deckData[j].suit;
hand.handData[j].rank = deckData[j].rank;
}
return hand;
}
当它的成员是私有的时,我怎样才能让这个函数返回一个类型为手的对象?谢谢你。