为什么在编译C ++程序时出现"multiple types in one declaration"
错误?
答案 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;在第一个非空间上面的类。找到问题往往比知道问题更难。