2016-07-08 9 views
0

Ich baue ein Texas Holdem Spiel als ein Projekt, um OOP zu lernen. Ich habe Tictactoe mehrfach mit einer einzelnen Klasse erstellt und mich entschieden, etwas herausfordernderes mit Klassen/Strukturen zu machen, die miteinander interagieren. Ich versuche, einfach mein Kartenstapel von meiner DeckOfCards Klasse in meinem Konstruktor zu initialisieren, und ich erhalte einen Syntaxfehler. Nicht sicher, was ich falsch mache. Irgendwelche Gedanken?Fehler Initialisierung std :: array <card,52> für Kartenspiel

Der Fehler in der DeckOfCards::DeckOfCards() : Initialisierung auftritt

auf jedem Diamanten einen Fehler empfangen, Werte, die sagt Symbol „Diamonds“ konnte nicht aufgelöst werden, Symbol „Zwei“ konnte nicht resolved..etc sein. Etc

DeckOfCards.cpp

#include <iostream> 
#include "DeckOfCards.h" 
#include "Card.h" 
#include <array> 


DeckOfCards::DeckOfCards() 
: 
    cards_(
     {Diamonds, Two}, 
     {Diamonds, Three}, 
     {Diamonds, Four}, 
     {Diamonds, Five}, 
     {Diamonds, Six}, 
     {Diamonds, Seven}, 
     {Diamonds, Eight}, 
     {Diamonds, Nine}, 
     {Diamonds, Ten}, 
     {Diamonds, Jack}, 
     {Diamonds, Queen}, 
     {Diamonds, King}, 
     {Diamonds, Ace}) 
{ 

} 

DeckOfCards.h

* DeckOfCards.h 
* 
* 
*  
*/ 

#ifndef DECKOFCARDS_H_ 
#define DECKOFCARDS_H_ 

#include <array> 

class DeckOfCards 
{ 

    public: 
     DeckOfCards(); 

    private: 
     std::array<Card,52> cards_; 


}; 

#endif /* DECKOFCARDS_H_ */ 

Card.h

* Cards.h 
* 
* Created on: Jul 8, 2016 
*  Author: TAmend 
*/ 

#ifndef CARD_H_ 
#define CARD_H_ 

struct Card 
{ 

    enum Suit_Type 
    { 
     Diamonds, 
     Hearts, 
     Spades, 
     Clubs, 
    } suit; 

    enum Value_Type 
    { 

     Two = 2, 
     Three = 3, 
     Four = 4, 
     Five = 5, 
     Six = 6, 
     Seven = 7, 
     Eight = 8, 
     Nine = 9, 
     Ten = 10, 
     Jack = 11, 
     Queen = 12, 
     King = 13, 
     Ace = 14 
    } value; 

    void printCard(); 
}; 



#endif /* CARD_H_ */ 
+1

Es ist hilfreich, den tatsächlichen Fehler einzubeziehen. – JETM

+0

Schreiben 'Karten _ {{Diamanten, zwei}, ....}' –

+0

Ich tat das @ πάνταῥεῖ immer noch gleiche Fehler = [ – StormsEdge

Antwort

1

Suit_Type und Value_Type sind Mitglieder Card. Sie müssen ihre Werte qualifizieren:

DeckOfCards::DeckOfCards() 
: 
    cards_(
     {Card::Diamonds, Card::Two}, 
     {Card::Diamonds, Card::Three}, 
     {Card::Diamonds, Card::Four}, 
     {Card::Diamonds, Card::Five}, 

oder verschieben Sie die Enums in den globalen Bereich.

Verwandte Themen