C ++“一个声明中的多个类型”错误

时间:2009-11-18 02:14:30

标签: c++

为什么在编译C ++程序时出现"multiple types in one declaration"错误?

8 个答案:

答案 0 :(得分:128)

您可能拥有相当于

的代码
int float x;

可能

class Foo { } float x;

或其中更常见的形式(注意关闭大括号后缺少分号)

class Foo {
  //
}

float x;

答案 1 :(得分:30)

我遇到了同样的问题。有时错误行没有显示正确的位置。浏览所有新创建/修改过的课程,看看你是否忘了“;”在课堂定义的最后。

答案 2 :(得分:19)

在枚举声明之后也不要忘记检查;

答案 3 :(得分:13)

您必须在某个类或两个具有相同名称的类中声明两次相同的变量。例如,请参阅Stack Overflow上的this

你可能也错过了;,或者你可能有一个语法错误的类定义......

如果您可以向我们展示一些代码,那就更好了!

答案 4 :(得分:9)

我的猜测是你在类定义中的某个地方缺少一个右括号,或者在它之后的分号。

答案 5 :(得分:8)

另外,您可能忘记了前向声明中的分号:

class Foo // <-- forgot semicolon

class Bar {
  ...
};

答案 6 :(得分:4)

这是另一种可以弹出相同错误的方案

struct Field
{   // <------ Forget this curly brace
    enum FieldEnum
    {
        FIRSTNAME,
        MIDDLENAME,
        LASTNAME,
        UNKNOWN
    };
};

答案 7 :(得分:2)

同意上述内容。此外,如果你看到这个,预处理应用程序并查看.i 搜索&#34;冒犯&#34;名称。然后回头看看。你经常会看到&#34;}&#34; w / o&#34;;&#34;在第一个非空间上面的类。找到问题往往比知道问题更难。