Подтвердить что ты не робот

Ошибка С++ "несколько типов в одной декларации"

Почему я получаю ошибку "multiple types in one declaration" при компиляции моей программы на С++?

4b9b3361

Ответ 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 ";" на классе в первом не-пространстве выше. Найти проблему часто сложнее, чем знать, что это такое.