使用枚举类的未定义符号

Gio*_*nni 2 c++ enums c++11 c++builder-xe2

这可能是一个微不足道的问题,但我无法克服枚举类数据的问题:

enum class enumTest
{
   VALUE0 = 0, VALUE1 = 1, VALUE2 = 2
};

void __fastcall TForm1::Button1Click (TObject* Sender)
{
int a = VALUE1;
}
Run Code Online (Sandbox Code Playgroud)

我得到:错误:未定义的符号:'VALUE1'

将枚举类枚举更改为:

enum //class enumTest
Run Code Online (Sandbox Code Playgroud)

编译器正常工作.

不幸的是我不能这样做因为它被定义到TLB/OCX包含文件中,就像许多其他声明一样.这种情况发生在不同供应商的不同类型的OCX上.

Jam*_*lis 13

An enum class称为范围枚举.您需要在枚举范围内使用其枚举器.例如,

int a = enumTest::VALUE1;
Run Code Online (Sandbox Code Playgroud)