错误:未在此范围内声明枚举

时间:2012-06-27 16:17:57

标签: c++

我在ksql.h中为枚举添加了一个新值(NULL_IS_NOT_NIL)

enum
{
    PKEY                  = 0x000001,
    NONCOLUMN             = 0x000010,
    EXPRESSION            = 0x000010,
    INSERTONLY            = 0x000100,
    NUMERIC               = 0x001000,
    NULL_IS_NOT_NIL       = 0x010000,

    MAXLEN_TABLENAME      = 50
};

不幸的是,这个:

Row.SetExtras ("COMMENT2", KROW::NULL_IS_NOT_NIL);

引发错误。

db.cpp:7727: error: âNULL_IS_NOT_NILâ was not declared in this scope

另一方面

Row.SetExtras ("COMMENT2", 0x010000);

Row.SetExtras (vendor_id,  KROW::NUMERIC);

两者都工作正常,不会抛出错误。现在我可以通过将0x_0000替换为NULL_IS_NOT_NIL,但这是一个坏主意。我有没有理由得到这个错误?我错过了一些明显的东西吗?

2 个答案:

答案 0 :(得分:2)

您已在头文件中进行了更改,但它们未在您的项目中反映出来。正如评论中所述,原因是它没有被推到正确的文件夹中。

答案 1 :(得分:0)

您忘了给enum一个名称:您的代码段中缺少KROW

另一方面,如果您将其称为KROW,则会出现重新定义错误。所以你需要提出一个不同的解决方案。 (除非您直接编辑系统头文件 - 但肯定不是......)