C++枚举不命名类型

C++ enum does not name a type

本文关键字:类型 枚举 C++      更新时间:2023-10-16

我正在解决一个问题,其中部分代码如下所示:

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 进行编译,但无济于事。

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

请开导我。

在创建类型为 type 的变量之前,必须声明 type 。如果在代码中声明type后移动类型"t",它将修复错误。更改此内容

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

对此

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

它将正常工作。

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

试试这个:

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