对象数组的C ++问题

时间:2015-12-24 15:00:15

标签: c++ arrays object

我们有一项创建二十一点游戏的任务。

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;
}

问题是正在创建对象数组的位置。编译器给我以下错误:

  

错误C3646'card':未知的覆盖说明符

     

错误C2143语法错误:在'['

之前缺少','      

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

     

错误C2238';'

之前的意外标记

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:8)

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

需要在课程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;
}