Никогда не стоит включать исходный код. Всегда включать только заголовочные файлы.
Я не могу заглянуть в ваш файл (ы), однако, я думаю, что SPreadSheetCell.h включает файл (может быть SpreadSheet.h?), Поэтому существует циклическая зависимость.
Лучший способ - составить график включаемых файлов (как в файлах cpp, так и в h). Если где-то есть «круг», вы нашли проблему. В этом случае вы должны удалить одну ссылку, чтобы круг разорвался, или разбить файлы на более мелкие файлы (также, чтобы удалить круг).
(под "кружком" я имею в виду, например, файл A, включающий B, включая C, снова включающий A).