Digamos que quiero crear una clase de tarjeta. y quieren tener las enumeraciones de las tarjetasDonde definir enumeraciones
2,3,4,5,6,7,8,9, J, Q, K, A, el archivo de cabecera
¿Dónde está el mejor lugar para definir este Card.h o Card.cpp?
Digamos que quiero crear una clase de tarjeta. y quieren tener las enumeraciones de las tarjetasDonde definir enumeraciones
2,3,4,5,6,7,8,9, J, Q, K, A, el archivo de cabecera
¿Dónde está el mejor lugar para definir este Card.h o Card.cpp?
lo haría así, en la definición de la clase de tarjeta:
class Card
{
public:
typedef enum
{
Two = 0,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
Ten,
Jack,
Queen,
King,
Ace
} Face;
};
o C++ 11:
class Card
{
public:
enum Face: unsigned char
{
Two = 0,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
Ten,
Jack,
Queen,
King,
Ace
};
};
Va a ser un nuevo tipo. Así que probablemente lo pondría en el archivo de encabezado en caso de que lo necesite en otras unidades de compilación.
¿Qué tal algo como esto:
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;
};
La mejor manera de definir la enumeración es declararla en el archivo de encabezado. Entonces, puede usarlo en cualquier lugar que desee al incluir ese archivo de encabezado durante la compilación.
Por supuesto, los números no son nombres de identificadores válidos ... – ildjarn
Realmente depende de qué partes de su código necesitan acceso a la enumeración. – Marlon