क्या अलग-अलग प्रकार में समान enum मान का पुन: उपयोग करने का कोई तरीका है? मैं निम्नलिखित की तरह कुछ करने में सक्षम होना चाहते हैं:अलग enum प्रकारों में enum मानों का पुन: उपयोग
enum DeviceState { UNKNOWN, ACTIVE, DISABLED, NOTPRESENT, UNPLUGGED };
enum DeviceType { UNKNOWN, PLAYBACK, RECORDING };
int _tmain(int argc, _TCHAR* argv[])
{
DeviceState deviceState = DeviceState::UNKNOWN;
DeviceType deviceType = DeviceType::UNKNOWN;
return 0;
}
यह मेरे लिए समझ में आता है, लेकिन सी ++ compiler- के लिए नहीं यह शिकायत: error C2365: 'UNKNOWN' : redefinition; previous definition was 'enumerator'
ऊपर की लाइन 2 पर। क्या ऐसा करने का कोई सही तरीका है, या क्या मुझे हमेशा अद्वितीय enum मानों का उपयोग करना चाहिए? मैं कल्पना नहीं कर सकता कि यह गारंटी देना हमेशा संभव है कि क्या मैं किसी और के कोड को शामिल कर रहा हूं।
धन्यवाद लुचियन। कृपया आप मेरे लिए अपना उदाहरण सही कर सकते हैं। मुझे यकीन नहीं है कि ऊपर वर्णित अनुसार नामस्थानों का उपयोग करके एक चर घोषित करना है। –
@IAmAI तो मैंने जो कोड पोस्ट किया है वह काम नहीं करता है? –
यदि मैं एक चर को 'डिवाइसस्टेट डिवाइसस्टेट = डिवाइसस्टेट :: UNKNOWN' के रूप में घोषित करता हूं, तो मुझे एक कंपाइलर त्रुटि मिलती है: '' डिवाइसस्टेट ': अभिव्यक्ति में नामस्थान पहचानकर्ता का अवैध उपयोग' –