Почему я получаю ошибку "multiple types in one declaration"
при компиляции моей программы на С++?
Ошибка С++ "несколько типов в одной декларации"
Ответ 1
Вероятно, у вас есть код, эквивалентный
int float x;
вероятно,
class Foo { } float x;
или в нем более распространенная форма (обратите внимание на отсутствующую точку с запятой после закрытия фигурной скобки)
class Foo {
//
}
float x;
Ответ 2
У меня была та же проблема. Иногда строка ошибки не показывает правильное место. Пройдите все классы, созданные или измененные, и посмотрите, не забываете ли вы ";" в конце класса defifnition.
Ответ 3
Вы должны были объявить дважды одну и ту же переменную в классе или двух классах с тем же именем. См. this в разделе "Переполнение стека", например.
Вы также можете пропустить ;
, или у вас может быть определение класса со сломанным синтаксисом...
Если вы можете показать нам какой-то код, это будет лучше!
Ответ 4
Не забудьте также проверить ;
после объявлений перечисления.
Ответ 5
Я предполагаю, что у вас отсутствует закрывающая скобка где-то в определении класса или после запятой после нее.
Ответ 6
Кроме того, вы, возможно, забыли точку с запятой в прямом объявлении:
class Foo // <-- forgot semicolon
class Bar {
...
};
Ответ 7
Вот еще один сценарий, который может вызывать ту же ошибку
struct Field
{ // <------ Forget this curly brace
enum FieldEnum
{
FIRSTNAME,
MIDDLENAME,
LASTNAME,
UNKNOWN
};
};
Ответ 8
Согласитесь с вышесказанным. Кроме того, если вы видите это, предварительно обработайте приложение и посмотрите на .i Найдите "оскорбительное" имя. Затем оглянитесь назад. Вы часто увидите "}" w/o ";" на классе в первом не-пространстве выше. Найти проблему часто сложнее, чем знать, что это такое.