sth सवाल का जवाब करता है, यह पता नहीं था कि कैसे मैं हमेशा enums का उपयोग किया है। भले ही वे संख्याओं के लिए कम या ज्यादा नाम हैं, फिर भी मैंने हमेशा उन प्रकारों को परिभाषित करने के लिए उपयोग किया है जिनके पास केवल कुछ मान हो सकते हैं।
enum वर्ग का हिस्सा है, तो है कि उपभोक्ताओं को स्पष्ट रूप से एक enum संदर्भ की पहचान में मदद करता है:
class Apple {
enum Variety {
Gala,
GoldenDelicious,
GrannySmith,
Fuji
}
...
};
फिर उपभोक्ताओं enum के सक्षम घोषित उदाहरणों होगा, पैरामीटर के रूप में पारित, और उन्हें योग्य जब संदर्भित प्रकारों में से एक।
unsigned int GetCountOfApples(Apple::Variety appleVariety);
...
fujiCnt = GetCountOfApples(Apple::Fuji);
कभी कभी तुम एक वर्ग या एक ही कक्षा में दो enums के बाहर एक enum चाहते हैं, और आप की तरह क्या Poy था कुछ कर सकते हैं। हालांकि आप enum प्रकार का संदर्भ नहीं दे पाएंगे, इसलिए बस इसे नाम दें।
namespace Color {
enum ColorEnum {
Blue,
Red,
Black
};
अब enum का उपयोग कर और मूल्यों काम करेगा की तरह:
Color::ColorEnum firstColor = Color::Blue;
Color::ColorEnum secondColor = Color::Red;
if(firstColor == secondColor)
....
अब उन्हें में एक ही नाम के साथ विभिन्न enums होने के लिए होता है अगर, वे हमेशा वे किस प्रकार कर रहे हैं के साथ योग्य हो जाएगा। फिर आप जुआरी के बारे में पूछने वाले संभाल सकते हैं।
void Function(Sample eSample);
Sample m_eSample;
और:
BananaColorEnum banCol = BananaColor::Yellow;
TomatoColorEnum tomCol = TomatoColor::Yellow;
आपके पास जावा अनुभव है जो मुझे लगता है;) – hhafez
:) हाँ। जावा और सी #। असल में, यह एकमात्र विशेषता है जिसे मैंने इन दोनों की तुलना में सी ++ में बदसूरत महसूस किया। –
यदि आप उस तरह के वाक्यविन्यास चाहते हैं तो आप केवल नामस्थान नमूना {enum {BLAH0, BLAH1}} कर सकते हैं और फिर इसे नमूना :: BLAH0 – BigSandwich