मैं एनाम चर से मूल्यों को किसी अन्य नामस्थान में सरणी में संग्रहीत करना चाहूंगा।

तो यह मानते हुए कि एनम निम्नानुसार है

namespace something
{
    enum IWANT
    {
        FOO = 0,
        BAR,
        BLARGH,
        MEH,
        SIZE
    };
} // namespace SOMETHING

और मैं इस एनुम का उपयोग कर सकता हूं

something::FOO

क्या यह संभव है कि मैं किसी सरणी में किसी चीज़ से कुछ वैरिएबल स्टोर कर सकूं? उदाहरण के लिए

<varType> onlyWhatIwant[3] = {something::FOO, something::BAR, something::SIZE}

ऐसा है कि जब चर onlyWhatIwant[1] points to the something::BAR के रूप में प्रयोग किया जाता है

मुझे नहीं पता कि यह संभव है या नहीं, लेकिन मैंने सोचा कि मैं दूसरे मार्ग की तलाश करने से पहले पूछूंगा।

c++
1
rakesh219 22 नवम्बर 2015, 01:11

2 जवाब

सबसे बढ़िया उत्तर

एनम मूल रूप से पूर्णांक स्थिरांक को परिभाषित करने का एक तरीका है; उनके पास कुछ पता जुड़ा नहीं है ताकि आप पारंपरिक अर्थों में उनके पास एक संकेतक रख सकें। आप जो करना चाहते हैं वह कुछ हद तक संभव है (नीचे मेरा पूरा उदाहरण देखें); हालाँकि, सरणी तत्व कुछ और इंगित नहीं करेंगे। उनके पास नियत स्थिरांक के बराबर मूल्य होगा (foo :: first और foo :: second, मेरे उदाहरण में)।

namespace foo {
    enum X {first, second};
};

int main() {
    foo::X t[3] = {foo::first, foo::first, foo::second};
    return 0;
}
1
Paul92 21 नवम्बर 2015, 22:19

इस तरह एक एनम के लिए

namespace something{
  enum myEnum{
    Val0 = 0,
    Val1 = 1,
    Val2 = 2,
    Val3 = 3,
  //...
  //Valn = n
  };
}

आप मूल्यों के लिए एक उपनाम के रूप में कुछ इस तरह का उपयोग कर सकते हैं

enum onlywhatiwant{
  Val1 = something::Val1,
  Val3 = something::Val3
  // etc
};
0
user4578093 21 नवम्बर 2015, 23:03