Я строю техасскую игру в холдем как проект, который поможет освоить ООП. Я построил tictactoe несколько раз с одним классом и решил перейти к чему-то более сложному с классами / структурами, взаимодействующими друг с другом. Я пытаюсь просто инициализировать мою колоду карт из моего DeckOfCards
класс в моем конструкторе, и я получаю синтаксическую ошибку. Не уверен, что я делаю не так. Какие-нибудь мысли?
Ошибка происходит в DeckOfCards::DeckOfCards() :
инициализация
Получение ошибки для каждого Алмаза. Значения, которые указывают на то, что Символ «Алмазы» не может быть разрешен, Символ «Два» не может быть решен .. и т.д.
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_ */
Suit_Type
а также Value_Type
являются членами Card
, Вам необходимо квалифицировать свои ценности:
DeckOfCards::DeckOfCards()
:
cards_(
{Card::Diamonds, Card::Two},
{Card::Diamonds, Card::Three},
{Card::Diamonds, Card::Four},
{Card::Diamonds, Card::Five},
или переместить перечисления в глобальную область видимости.
Других решений пока нет …