Esiste un modo per riutilizzare lo stesso valore enum in tipi separati? Mi piacerebbe essere in grado di qualcosa di simile al seguente:Riutilizzo dei valori enum in tipi di enum separati
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;
}
Questo ha senso per me, ma non per il C++ compiler- si lamenta: error C2365: 'UNKNOWN' : redefinition; previous definition was 'enumerator'
sulla linea 2 di cui sopra. C'è un modo corretto per farlo, o dovrei sempre usare valori enum univoci? Non riesco a immaginare che sia sempre possibile garantire se includo il codice di qualcun altro.
Grazie Luchian. Per favore potresti correggere il mio esempio per me. Non sono sicuro di come dichiarare una variabile usando gli spazi dei nomi come descritto sopra. –
@IAmAI quindi il codice che ho postato non funziona? –
Se dichiaro una variabile come 'DeviceState deviceState = DeviceState :: UNKNOWN;', viene visualizzato un errore del compilatore: ''DeviceState': uso illegale dell'identificatore dello spazio dei nomi nell'espressione' –