2011-12-27 22 views
5

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?

+2

Elbette, sayılar geçerli tanımlayıcı adları değil ... – ildjarn

+0

Gerçekten kodunuzun hangi bölümlerinin enum'a erişmesi gerektiğine bağlıdır. – Marlon

cevap

3

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 
    }; 
}; 
4

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.

0

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; 
}; 
0

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.

İlgili konular