2013-04-20 6 views
7

वर्ग कहा जाता चप्पू के लिए तो मैं इस नाम स्थान कहा जाता है paddleNS, अंदर paddleNS मैं एक enum रंग रूप में जाना जाता हैसी ++ एक enum वापस करने के लिए समारोह?

namespace paddleNS 
{ 
    enum COLOUR {WHITE = 0, RED = 1, PURPLE = 2, BLUE = 3, GREEN = 4, YELLOW = 5, ORANGE = 6}; 
} 

class Paddle : public Entity 
{ 
private: 
    paddleNS::COLOUR colour; 
public: 
    void NextColour(); 
    void PreviousColour(); 
    void PaddleColour(paddleNS::COLOUR col) { colour = col; } 
}; 

अब तो, क्या मैं सोच रहा था कि कैसे मैं एक समारोह है कि वापस आ जाएगी बनाने के बारे में जाना होगा है वर्तमान में रंग क्या है, इसे किसी मूल्य के बजाय टेक्स्ट फॉर्म में वापस करने का एक आसान तरीका है या क्या मैं रंग का पता लगाने के लिए केवल एक स्विच का उपयोग करने के बेहतर हूं?

उत्तर

13

बस मूल्य द्वारा enum वापसी:

class Paddle : public Entity 
{ 
    // as before... 

    paddleNS::COLOUR currentColour() const { return colour; } 
}; 
+0

क्या टेक्स्ट फॉर्म में इसे वापस करने का कोई आसान तरीका है या क्या मैं सिर्फ रंग का पता लगाने के लिए स्विच का उपयोग करने के बेहतर हूं? - यह थोड़ा सा था जो मैं याद कर रहा था, मेरी बुराई है .. – Andy

+0

@ एंडी आप अपने enum का एक स्ट्रिंग प्रतिनिधित्व चाहते हैं? – emesx

+0

यदि संभव हो, हाँ। – Andy

1
class Paddle : public Entity 
{ 
    // ---- 

    const char* currentColour() const { 
switch(couleur) 
{ 
case WHITE: 
    return "white"; 
    break; 
//And so on 
} 
} 
}; 
1

तार की एक सरणी जहां तार के इस सरणी में इण्डिक enum मूल्य प्रयोग कर रहे हैं से मेल खाता है रखें।

तो अगर आप हैं:

enum COLOUR {WHITE = 0, RED = 1, PURPLE = 2, BLUE = 3, GREEN = 4, YELLOW = 5, ORANGE = 6}; 

मैं तो है एक सरणी परिभाषित होगा:

String colors[] = {white, red, purple, blue, green, yellow, orange} 

फिर जब आप इस प्रकार के एक enum वापसी एक समारोह है आप इसे रख सकते हैं में अपने सरणी और स्ट्रिंग प्रारूप में सही रंग मिलता है।

संबंधित मुद्दे