Неизвестный тип имени класса
У меня есть следующие файлы заголовков:
https://gist.github.com/wemakeweb/5501443
и компилятор всегда сообщает "Неизвестный тип имени класса" . Я включил форвардную декларацию, чтобы развернуть циркуляр, в том числе, где я думаю, что должен. Что я забыл?
Изменить: я помещаю все это в один файл заголовка, а компилятор все еще сообщает "ожидаемый, после объявления верхнего уровня"
https://gist.github.com/wemakeweb/5583500
Изменить 2
Теперь я получаю ошибки компоновщика. "Undefined символы для архитектуры x86_64"
Решено, проблемы были
- Циркуляр вкл.
- main.c вместо main.cpp
- фактический код находился в статическом lib, который не был правильно связан
Ответы
Ответ 1
Эта ошибка? error: unknown type name ‘class’
Скорее всего, вы компилируете его как C, а не С++.
Убедитесь, что ваш исходный файл имеет расширение .cpp
, и все соответствующие флаги компилятора установлены правильно. (Это помогает, если вы включаете точное сообщение об ошибке и номера строк. Не пытайтесь повторить, просто вырежьте + вставить.)
Ответ 2
У вас есть как минимум одна циклическая зависимость между Feld.h
и Figur.h
. Передовые декларации не действуют, если вы также включаете заголовки. Просто удалите включенные.