Ошибка инициализации std :: array & lt; card, 52 & gt; для колоды карт

Я строю техасскую игру в холдем как проект, который поможет освоить ООП. Я построил 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_ */

0

Решение

Suit_Type а также Value_Type являются членами Card, Вам необходимо квалифицировать свои ценности:

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

или переместить перечисления в глобальную область видимости.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]