2011-12-27 18 views
5

私はカードクラスを作成したいと言います。そしてカードの列挙型enumsを定義する場所

2,3,4,5,6,7,8,9、J、Q、K、これを定義するのに最適な場所、ヘッダファイルです

を持つようにしたいですCard.hまたはCard.cpp?

+2

数字は有効な識別子名ではありません... – ildjarn

+0

実際には、コードのどの部分が列挙型にアクセスする必要があるかによって異なります。 – Marlon

答えて

3

私はあなたのカードクラスの定義では、このようにそれを行うだろう:

class Card 
{ 
public: 
    typedef enum 
    { 
     Two = 0, 
     Three, 
     Four, 
     Five, 
     Six, 
     Seven, 
     Eight, 
     Nine, 
     Ten, 
     Jack, 
     Queen, 
     King, 
     Ace 
    } Face; 
}; 

またはC++ 11:

class Card 
{ 
public: 
    enum Face: unsigned char 
    { 
     Two = 0, 
     Three, 
     Four, 
     Five, 
     Six, 
     Seven, 
     Eight, 
     Nine, 
     Ten, 
     Jack, 
     Queen, 
     King, 
     Ace 
    }; 
}; 
4

新しいタイプになる予定です。他のコンパイル単位で必要な場合は、おそらくヘッダーファイルに記述します。

0

どのようにこのようなものについて:

class CCard 
{ 
public: 
    CCard(void); 
    virtual ~CCard(void); 

    // Card face type 
    enum eCardFaceType 
    { 
     Face_2, 
     Face_3, 
     Face_4, 
     Face_5, 
     Face_6, 
     Face_7, 
     Face_8, 
     Face_9, 
     Face_10, 
     Face_Jack, 
     Face_Queen, 
     Face_King 
    }; 

    // Card suit 
    enum eSuitType 
    { 
     Suit_Clubs, 
     Suit_Diamonds, 
     Suit_Hearts, 
     Suit_Spades 
    }; 

    // Internal data. 
protected: 
    eCardFaceType m_face; 
    eSuitType m_Suit; 
}; 
0

列挙型を定義する最も良い方法は、ヘッダファイルで宣言することです。コンパイル時にヘッダファイルをインクルードすることで、どこでも使用できます。

関連する問題