在哪里定义枚举

时间:2011-12-27 23:43:03

标签: c++

说我想创建一个卡类。并希望获得卡片的枚举

2,3,4,5,6,7,8,9,J,Q,K,A

哪里是定义它的最佳位置,头文件Card.h或Card.cpp?

4 个答案:

答案 0 :(得分:4)

这将是一个新的类型。所以我可能会把它放在头文件中,以防我在其他编译单元中需要它。

答案 1 :(得分: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
   };
};

答案 2 :(得分: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;
};

答案 3 :(得分:0)

定义枚举的最佳方法是在头文件中声明它。因此,您可以通过在编译期间包含该头文件在任何地方使用它。