如果我有一个像这样的简单类用于卡片:
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;
}
错误:此范围内未声明'Suit'
我知道这有效:
#include "Card.h"
using namespace std;
int main () {
Card card(Card.CLUBS);
return 0;
}
但如何在另一个文件中创建Suit类型的变量?
答案 0 :(得分:12)
当不在卡片范围内时,使用Card::Suit
来引用该类型。 ......实际上,你也应该像这样引用西装;我对Card.CLUBS
编译感到有些惊讶,我一直以为你必须做Card::CLUBS
。
答案 1 :(得分:6)
Suit是类Card命名空间的一部分,请尝试:
Card::Suit suit = Card::CLUBS;