Bir kart sınıfı oluşturmak istiyorum. ve, kartlarınOrtamları tanımlamak için
2,3,4,5,6,7,8,9, J, Q, K için çeteleler sahip A
bu tanımlamak için en iyi yer olduğunu, başlık dosyasını istiyorum Card.h veya Card.cpp?
Bir kart sınıfı oluşturmak istiyorum. ve, kartlarınOrtamları tanımlamak için
2,3,4,5,6,7,8,9, J, Q, K için çeteleler sahip A
bu tanımlamak için en iyi yer olduğunu, başlık dosyasını istiyorum Card.h veya Card.cpp?
Ben senin kart sınıfının tanımında, böyle yapmak istiyorum:
class Card
{
public:
typedef enum
{
Two = 0,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
Ten,
Jack,
Queen,
King,
Ace
} Face;
};
Veya C++ 11:
class Card
{
public:
enum Face: unsigned char
{
Two = 0,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
Ten,
Jack,
Queen,
King,
Ace
};
};
Yeni bir tip ürününe dönüşecek. Bu yüzden diğer derleme birimlerinde ihtiyacım olması durumunda muhtemelen başlık dosyasına koyardım.
Nasıl böyle bir şey hakkında:
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;
};
Enum'u tanımlamanın en iyi yolu, başlık dosyasında bildirmektir. Böylece, derleme sırasında bu başlık dosyasını ekleyerek istediğiniz her yerde kullanabilirsiniz.
Elbette, sayılar geçerli tanımlayıcı adları değil ... – ildjarn
Gerçekten kodunuzun hangi bölümlerinin enum'a erişmesi gerektiğine bağlıdır. – Marlon