我想讓一個類代表一張卡片。但編譯時遇到了這個錯誤。執行錯誤在C++裏面的enum裏面
error: expected `;' before "suit".
任何人都可以幫助這是什麼問題嗎?
#include<string>
using namespace std;
class Card {
private:
Card::Suit suit;
Card::CardName cardName;
public:
enum Suit {Clubs, Diamonds, Hearts, Spades, UNKNOWN_SUIT};
enum CardName {Ace, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King, UNKNOWN_CARDNAME};
class NotInitalised : public exception{};
Card();
Card (int card);
Card (Card::Suit s, Card::CardName n);
void setCard(Card::Suit, Card::CardName);
Card::Suit getSuit();
Card::CardName getCardName();
Card::CardName getCardName(int);
int getCardValue();
string toString();
};
您位於聲明枚舉的相同範圍內。因此,這些類型不需要作用域解析。 – chris
順便說一句,它將枚舉移動到類的頂部時起作用:http://liveworkspace.org/code/67cd31d07367763b0e2d5c4de5ae09cd – chris
不相關:現在在頭文件中使用名稱空間標準符號打破自己的'名稱空間標準'。潛在的副作用不值得方便(並且有*無*便利)。在標題中使用限定名稱空間的ID /類型。 (例如'std :: string') – WhozCraig