使用枚举类的未定义符号

Undefined symbol using enum class

本文关键字:未定义 符号 枚举      更新时间:2023-10-16

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

enum class enumTest
{
   VALUE0 = 0, VALUE1 = 1, VALUE2 = 2
};
void __fastcall TForm1::Button1Click (TObject* Sender)
{
int a = VALUE1;
}

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

将枚举类枚举更改为:

enum //class enumTest

编译器工作正常。

不幸的是,我无法做到这一点,因为它和许多其他声明一样被定义在TLB/OCX include文件中。这种情况发生在不同供应商的不同类型的OCX上。

enum class被称为作用域枚举。您需要在枚举的范围中使用它的枚举器。例如,

int a = enumTest::VALUE1;