开发者社区> 问答> 正文

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 2478 0
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
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Decian GNU/Linux安全合规之路 立即下载
Debian GNU/Linux 安全合规之路 立即下载
从 Linux 系统内核层面来解决实际问题的实战经验 立即下载