我刚刚从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完美编译。

最佳答案

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

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

关于c++ - Shapes不是类或 namespace ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10506407/

10-09 06:21