मैं कुछ राज्य मशीन है कि मैं कर रहा हूँ को लागू करने में राज्यों की गणना करने में एक दायरे वाला enum उपयोग कर रहा हूँ।स्कॉप्ड गणनाओं के लिए "नेमस्पेस एक्स का उपयोग" के समतुल्य?
enum class CatState
{
sleeping,
napping,
resting
};
मेरी cpp फ़ाइल में जहां मैं एक राज्य संक्रमण तालिका परिभाषित करते हैं, मैं using namespace X
के लिए कुछ बराबर उपयोग करने के लिए इतना है कि मैं के साथ सभी मेरे राज्य के नाम उपसर्ग की जरूरत नहीं है चाहते हैं: उदाहरण के लिए, मान लीजिए कि कुछ पसंद करते हैं CatState::
। दूसरे शब्दों में, मैं sleeping
बजाय CatState::sleeping
उपयोग करना चाहते हैं। मेरी संक्रमण तालिका में कुछ कॉलम हैं, इसलिए CatState::
उपसर्ग से परहेज करना चीजों को अधिक कॉम्पैक्ट और पठनीय रखेगा।
तो, वहाँ एक रास्ता CatState::
हर समय टाइप करने के लिए होने से बचने के लिए है?
हाँ, हाँ, मैं पहले से ही using namespace
के नुकसान के बारे में पता कर रहा हूँ। यदि दृढ़ता से टाइप किए गए enums के बराबर है, तो मैं केवल अपने सीपीपी कार्यान्वयन फ़ाइल में सीमित दायरे के अंदर इसका उपयोग करने का वादा करता हूं, न कि बुराई के लिए।
क्या आपको वास्तव में 'एनम क्लास' की आवश्यकता है, या एक 'enum' करना होगा? – netcoder
यह मूल रूप से एक सादा 'enum' था, लेकिन मैं C++ 11 सुविधाओं का उपयोग करने के लिए अपना कोड बदल रहा हूं। मुझे 'एनम क्लास' के साथ मजबूत प्रकार की सुरक्षा का विचार पसंद है। –