Неизвестный тип имени класса

У меня есть следующие файлы заголовков:

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. Передовые декларации не действуют, если вы также включаете заголовки. Просто удалите включенные.