Перечисление передачи C++ как параметр

Если у меня есть простой класс как этот для карты:

class Card {
        public:
            enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES };
            Card(Suit suit);
    };

и я затем хочу создать экземпляр карты в другом файле, как я передаю перечисление?

#include "Card.h"
using namespace std;
int main () {
    Suit suit = Card.CLUBS;
    Card card(suit);
    return 0;
}

ошибка: 'Иск' не был объявлен в этом объеме

Я знаю, что это работает:

#include "Card.h"
using namespace std;
int main () {
    Card card(Card.CLUBS);
    return 0;
}

но как я создаю переменную Иска типа в другом файле?

11
задан Adam Stelmaszczyk 8 December 2015 в 22:05
поделиться

2 ответа

Используйте Card :: Suit для ссылки на тип, когда он не находится в области действия карты. ... на самом деле, вы тоже должны ссылаться на такие костюмы; Я немного удивлен, что компилируется Card.CLUBS , и я всегда думал, что вам нужно выполнить Card :: CLUBS .

13
ответ дан 3 December 2019 в 06:20
поделиться

Suit является частью пространства имен класса Card, поэтому попробуйте:

Card::Suit suit = Card::CLUBS;
6
ответ дан 3 December 2019 в 06:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: