形状不是类或命名空间

Shapes is not a class or namespace

本文关键字:命名空间      更新时间:2023-10-16

我刚刚从Windows(Visual Studio)切换到Linux(Mint),现在我正在使用QTCreator进行普通的c ++项目。虽然当我尝试编译我正在使用VS2010的项目时,一切似乎都很好,但g++不接受以下语法。

enum{
    LINE,
    POLYGON,
    TRIANGLE
}Shapes;

。很多代码...

gEngine.AddItem(1,0,Shapes::POLYGON,0,0,0);
gEngine.AddItem(1,2,Shapes::POLYGON,400,400,-1);
gEngine.AddItem(1,2,Shapes::POLYGON,800,400,-1);
gEngine.AddItem(1,2,Shapes::POLYGON,800,800,-1);
gEngine.AddItem(1,2,Shapes::POLYGON,400,800,-1);
gEngine.AddItem(1,2,Shapes::POLYGON,400,400,-1);
gEngine.AddItem(1,1,Shapes::POLYGON,0,0,0);

(G++)返回:Shapes不是一个类或命名空间;即使它与VS2010完美编译。

我想你想要

enum Shapes{
  LINE,
  POLYGON,
  TRIANGLE
};

这声明了一个枚举类型Shapes,但是您定义了类型(没有名称)的变量Shapes,该类型是一个枚举。

没有类型 Shapes 但您已经声明了一个名为 Shapes 的变量。

要定义类型,请使用enum Shapes {...}然后创建该类型的变量。