C++枚举不命名类型
C++ enum does not name a type
我正在解决一个问题,其中部分代码如下所示:
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;
};
相关文章:
- 在有符号基础类型枚举的位域上溢出
- 在编译时将强类型枚举器转换为其基础类型?
- 如果 int 是"not within the enums range",为什么将 int 转换为强类型枚举会编译?
- 类型枚举的变量不是类型名称
- 强类型枚举的语法实现错误
- 枚举与强类型枚举
- 错误:T没有命名类型-用于使用强类型枚举的专门化
- 如何使用强类型枚举
- QT:将强类型枚举参数传递到插槽
- 在类定义中声明类型(枚举、结构等)会增加代码大小
- Visual Studio 11 (beta) 中的强类型枚举类
- 使用强类型枚举对类型和子类型进行建模
- 不允许将强类型枚举用作同一基础类型的参数
- 如何正确使用C++强类型枚举
- 带有强类型枚举的模板参数推导
- 是否可以在googleprotobuf中为类型(枚举或消息)定义一个别名
- C++中默认初始化的全局强类型枚举是什么
- std::is_signed不适用于强类型枚举:int
- 如何定义自定义值的类型?(枚举类型定义)
- 将强类型枚举传递给函数