C++ с использованием enum из другого класса
Я создал класс Adresy
:
class Adresy {
public:
static const DWORD hp = 0x947000;
static const DWORD mp = 0x7B2084;
static const DWORD cap = 0x97EE94;
enum Flags
{
None = 0,
Poisoned = 1,
Burning = 2,
ProtectedByMagicShield = 16
};
};
Когда я пытаюсь использовать его в этом примере:
if(( (DWORD) adr.ProtectedByMagicShield & pFlags) == (DWORD) ProtectedByMagicShield){
//...
}
там написано выдает ошибку: 'ProtectedByMagicShield' : undeclared identifier...
pFlags
это DWORD
Я использую C++.NET.
1 ответ
Решение
if(( (DWORD) Adresy::ProtectedByMagicShield & pFlags) == (DWORD) Adresy::ProtectedByMagicShield){
//...
}
Вам нужно использовать имя класса и маркер области видимости (::) для доступа к значениям перечисления.
Это связано с тем, что enum принадлежит не конкретному экземпляру вашего класса, а самому классу, например, статическим членам const.