Chúng tôi có nhiệm vụ tạo trò chơi blackjack.Vấn đề C++ với mảng đối tượng
Bellow được đơn giản hóa phiên bản của mã của tôi:
#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;
}
Vấn đề là nơi mà các mảng của các đối tượng thẻ đang được tạo ra. trình biên dịch cung cấp cho tôi các lỗi sau:
Error C3646 'cards': unknown override specifier
Error C2143 syntax error: missing ',' before '['
Error C2143 syntax error: missing ')' before ';'
Error C2238 unexpected token(s) preceding ';'
Điều gì sai với mã của tôi?
Do trình biên dịch không hiểu Thẻ lớp, nó ném trình phân tích cú pháp, làm cho các thông báo lỗi khá ngớ ngẩn. – mksteve
Tôi cảm thấy cho bạn. Thực tế là C++ yêu cầu các khai báo về phía trước (không giống như các ngôn ngữ khác, C# C, làm công việc cho bạn) cộng với thực tế là thông báo lỗi là gây hiểu nhầm ... thở dài. Tại sao chúng ta lại lập trình C++? :) –