2011-12-27 31 views
5

Giả sử tôi muốn tạo một lớp thẻ. và muốn có sự đếm cho các thẻNơi để xác định enums

2,3,4,5,6,7,8,9, J, Q, K, A

Đâu là nơi tốt nhất để xác định này, các tập tin tiêu đề Card.h hoặc Card.cpp?

+2

Tất nhiên, các số không phải là tên định danh hợp lệ ... – ildjarn

+0

Nó thực sự phụ thuộc vào những phần nào trong mã của bạn cần truy cập vào enum. – Marlon

Trả lời

3

tôi sẽ làm điều đó như thế này, trong định nghĩa của lớp thẻ của bạn:

class Card 
{ 
public: 
    typedef enum 
    { 
     Two = 0, 
     Three, 
     Four, 
     Five, 
     Six, 
     Seven, 
     Eight, 
     Nine, 
     Ten, 
     Jack, 
     Queen, 
     King, 
     Ace 
    } Face; 
}; 

Hoặc C++ 11:

class Card 
{ 
public: 
    enum Face: unsigned char 
    { 
     Two = 0, 
     Three, 
     Four, 
     Five, 
     Six, 
     Seven, 
     Eight, 
     Nine, 
     Ten, 
     Jack, 
     Queen, 
     King, 
     Ace 
    }; 
}; 
4

Nó sẽ là một mới loại. Vì vậy, tôi có lẽ sẽ đặt nó vào tập tin tiêu đề trong trường hợp tôi cần nó trong các đơn vị biên dịch khác.

0

Làm thế nào về một cái gì đó như thế này:

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

Cách tốt nhất để xác định enum là khai báo nó trong tệp tiêu đề. Vì vậy, bạn có thể sử dụng nó bất cứ nơi nào bạn muốn bằng cách bao gồm tập tin tiêu đề đó trong quá trình biên dịch.

Các vấn đề liên quan