Если у меня есть простой класс как этот для карты:
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;
}
но как я создаю переменную Иска типа в другом файле?
Используйте Card :: Suit
для ссылки на тип, когда он не находится в области действия карты. ... на самом деле, вы тоже должны ссылаться на такие костюмы; Я немного удивлен, что компилируется Card.CLUBS
, и я всегда думал, что вам нужно выполнить Card :: CLUBS
.
Suit является частью пространства имен класса Card, поэтому попробуйте:
Card::Suit suit = Card::CLUBS;