C ++枚举没有命名类型

时间:2015-04-27 02:04:25

标签: c++ enums

我正在解决部分代码如下所示的问题:

class x
{
  type t;
public:
  enum type { A, B, C, D};
};

g ++说type does not name a type。我尝试将type t更改为x::type t或使用C ++ 11进行编译无效。

这是一个简单的问题,因此没有链接,也就是说,我没有包含任何头文件。

请赐教。

2 个答案:

答案 0 :(得分:3)

在创建type类型的变量之前,您必须声明type。如果你移动类型' t'在您的代码中声明type后,它将修复错误。改变这个

class x
{
   type t;
public:
   enum type { A, B, C, D};
};

到这个

class x
{
public:
    enum type { A, B, C, D};
private:
    type t;
};

它会正常工作。

答案 1 :(得分:0)

编译器不知道type是枚举,因为它是在声明之前使用的。

试试这个:

class x
{
public:
  enum type { A, B, C, D};
private:
  type t;
};