2015-12-24 9 views
7

हमारे पास ब्लैकजैक का गेम बनाने के लिए असाइनमेंट है।ऑब्जेक्ट्स की सरणी के साथ सी ++ समस्याएं

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

जहां वस्तुओं कार्ड की सरणी बनाया जा रहा है समस्या है:

Bellow मेरी कोड के संस्करण सरलीकृत है। संकलक मुझे निम्नलिखित त्रुटियां देता है:

Error C3646 'cards': unknown override specifier

Error C2143 syntax error: missing ',' before '['

Error C2143 syntax error: missing ')' before ';'

Error C2238 unexpected token(s) preceding ';'

मेरे कोड में क्या गलत है?

+2

क्योंकि कंपाइलर कक्षा कार्ड को नहीं समझता है, यह पार्सर फेंकता है, जिससे त्रुटि संदेश काफी उलझन में आते हैं। – mksteve

+0

मुझे आपके लिए लगता है। तथ्य यह है कि सी ++ को आगे की घोषणाओं की आवश्यकता है (अन्य भाषाओं के विपरीत, सीएफ सी #, जो आपके लिए काम करता है) और तथ्य यह है कि त्रुटि संदेश भ्रामक है ... श्वास। हम फिर से सी ++ में प्रोग्राम क्यों करते हैं? :) –

उत्तर

8

कंपाइलर नहीं जानता कि कार्ड क्या है, इसलिए सही कोड उत्पन्न नहीं हो सकता है। के रूप में CardDeck में शामिल है

वर्ग 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; 
} 
+0

ओह क्या बेवकूफ गलती है- कोई आश्चर्य नहीं कि मैं कोड के साथ कुछ भी गलत नहीं सोच सकता क्योंकि यह आदेश देने के कारण था! वैसे भी मदद के लिए धन्यवाद :) – user5714811

+1

@ user5714811 अगर उत्तर आपकी समस्या को हल करने में आपकी मदद करता है तो कृपया उत्तर को स्वीकार्य और अपवर्तित करें। –

संबंधित मुद्दे