Czy istnieje sposób ponownego użycia tej samej wartości wyliczeniowej w oddzielnych typach? Chciałbym móc coś jak następuje:Ponowne użycie wartości wyliczeniowych w oddzielnych typach wyliczeniowych
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;
}
to sens do mnie, ale nie dla C++ compiler- narzeka: error C2365: 'UNKNOWN' : redefinition; previous definition was 'enumerator'
on line 2 powyżej. Czy jest to właściwy sposób, czy też zawsze powinienem używać unikalnych wartości wyliczeniowych? Nie mogę sobie wyobrazić, że zawsze można to zagwarantować, jeśli dołączę kod kogoś innego.
Dzięki Luchian. Czy mógłbyś poprawić mój przykład dla mnie? Nie jestem pewien, jak zadeklarować zmienną przy użyciu przestrzeni nazw, jak opisano powyżej. –
@AmAI, więc napisany przeze mnie kod nie działa? –
Jeśli zadeklaruję zmienną jako 'DeviceState deviceState = DeviceState :: UNKNOWN;', pojawia się błąd kompilatora: ''DeviceState': niedozwolone użycie identyfikatora przestrzeni nazw w wyrażeniu' –