程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c++-linux g++編譯器處理枚舉類型的問題

c++-linux g++編譯器處理枚舉類型的問題

編輯:編程綜合問答
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;
}

圖片說明

既不是類也不是命名空間。
windows下的VS2013編譯沒有問題,為啥linux的G++不能接受。

最佳回答:


C++中的枚舉直接作為常量使用
enum MyEnum
{
F = 0,
T = 1
};

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

而MyEnum::F這種使用為當這個枚舉被命名空間作用才可以
例如
namespace MyEnum
{
enum TESTEnum
{
F = 0,
T = 1
};
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved