1

我创建了一个类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。

4

1 回答 1

5
if(( (DWORD) Adresy::ProtectedByMagicShield & pFlags) == (DWORD) Adresy::ProtectedByMagicShield){
    //...
}

您需要使用类名和范围标记 (::) 来访问枚举的值。

这是因为枚举不归类的任何特定实例所有,而是归类本身所有,就像静态 const 成员一样。

于 2012-07-06T19:27:59.227 回答