对象数组的C++问题

C++ problems with array of objects

本文关键字:问题 C++ 数组 对象      更新时间:2023-10-16

我们有一个创建21点游戏的任务。

Bellow是我代码的简化版本:

#include <iostream>
#include <string>
#include <time.h>
using namespace std;
class Deck
{
private:
    Card cards[52];    <-- HERE!!
public:
};
class Card
{
private:
    int suit;
    int number;
public:

    int getSuit();
    int getNumber();
    void setCard(int suit, int number);
};
int Card::getSuit()
{
    return suit;
}
int Card::getNumber()
{
    return number;
}
void Card::setCard(int s, int n)
{
    suit = s;
    number = n;
}
class Players
{
private:
    Card PlayersCards[10];
public: 
    /*Card getCard();*/

};
//Card Players::getCard()
//{
//  return;
//}
int main()
{
    Players user;

    cin.get();
    cin.get();
    return 0;
}

问题是在哪里创建对象数组Card。编译器给我以下错误:

错误C3646"cards":未知的重写说明符

错误C2143语法错误:在"["之前缺少","

错误C2143语法错误:";"之前缺少")"

错误C2238";"前面的意外令牌

我的代码出了什么问题?

编译器不知道Card是什么,因此无法生成正确的代码。

Card需要在类Deck之前声明,因为Card包含在Deck中。

class Card {
    /// stuff - allows compiler to work out the size of one Card.
};
class Deck {
  private:
    Card cards[52];    // knows how to create 52 of these.
};
// implementation can go later.
int Card::getSuit()
{
    return suit;
}