C++ 在哪里定义枚举
假设我想创建一个卡片类。并且想要有卡片的枚举 2,3,4,5,6,7,8,9,J,Q,K,AC++ 在哪里定义枚举,c++,C++,假设我想创建一个卡片类。并且想要有卡片的枚举 2,3,4,5,6,7,8,9,J,Q,K,A 定义它的最佳位置是什么,头文件Card.h或Card.cpp?它将是一个新的类型。因此,我可能会将它放在头文件中,以防在其他编译单元中需要它。我会这样做,在您的卡类定义中: class Card { public: typedef enum { Two = 0, Three, Four, Five, Six, Seven
定义它的最佳位置是什么,头文件Card.h或Card.cpp?它将是一个新的类型。因此,我可能会将它放在头文件中,以防在其他编译单元中需要它。我会这样做,在您的卡类定义中:
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
};
};
像这样的怎么样:
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;
};
定义枚举的最佳方法是在头文件中声明它。因此,通过在编译过程中包含头文件,您可以在任何地方使用它。当然,数字不是有效的标识符名称……这实际上取决于代码的哪些部分需要访问枚举。