说我想创建一个卡类。并希望获得卡片的枚举
2,3,4,5,6,7,8,9,J,Q,K,A
哪里是定义它的最佳位置,头文件Card.h或Card.cpp?
答案 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)
定义枚举的最佳方法是在头文件中声明它。因此,您可以通过在编译期间包含该头文件在任何地方使用它。