13.4 另一个构造函数

优质
小牛编辑
136浏览
2023-12-01

有了Deck对象之后,我们有必要初始化其中的Card对象。上一章的buildDeck函数稍作修改就可使用,但是更自然的方法是为Deck类再添加一个构造函数,代码如下:

Deck::Deck ()
{
  apvector<Card> temp (52);
  cards = temp;
  int i = 0;
  for (Suit suit = CLUBS; suit <= SPADES; suit = Suit(suit+1)) {
    for (Rank rank = ACE; rank <= KING; rank = Rank(rank+1)) {
      cards[i].suit = suit;
      cards[i].rank = rank;
      i++;
  }
}

}

可以看到,除了语法变成了构造函数,它与buildDeck函数非常相似。现在,用简单的声明语句

 Deck deck;

就能创建一个标准的52章牌的牌堆了。