开发者社区 问答 正文

linux g++编译器处理枚举类型的问题

 #include <iostream>
enum MyEnum
{
    F = 0,
    T = 1
};

bool juge(MyEnum x)
{
    if (x == MyEnum::F)
    {
        return false;
    }
    else
    {
        return true;
    }
}

int main(int argc, char** argv)
{
    MyEnum x = MyEnum::T;
    if (juge(x))
    {
        std::cout << "true" << std::endl;
    }
    else
    {
        std::cout << "false" << std::endl;
    }
    return 0;
}

这样使用枚举之后为何编译有问题

展开
收起
a123456678 2016-03-05 14:43:56 2613 分享 版权
1 条回答
写回答
取消 提交回答
  • C++中的枚举直接作为常量使用
    enum MyEnum
    {
    F = 0,
    T = 1
    };

    判断直接使用
    if(X==F)

    而MyEnum::F这种使用为当这个枚举被命名空间作用才可以
    例如
    namespace MyEnum
    {
    enum TESTEnum
    {
    F = 0,
    T = 1
    };
    }

    2019-07-17 18:53:29
    赞同 展开评论
问答分类:
问答地址: