我刚刚从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 ++)返回:形状不是类或命名空间;即使它与VS2010完美匹配。
答案 0 :(得分:5)
我想你想要
enum Shapes{
LINE,
POLYGON,
TRIANGLE
};
这声明了一个枚举类型Shapes,但你所定义的是一个变量形状(没有名字)是一个枚举。
答案 1 :(得分:3)
没有类型Shapes
,但您已声明了一个名为Shapes
的变量。
要定义类型使用enum Shapes {...}
,然后创建该类型的变量。