我正在解决部分代码如下所示的问题:
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进行编译无效。
这是一个简单的问题,因此没有链接,也就是说,我没有包含任何头文件。
请赐教。
答案 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;
};