При компиляции реализации класса список путей, по которым компилятор ищет заголовки, должен отличаться.
Реализация класса и основные файлы находятся в одном каталоге? Если нет, то проблема может заключаться в том, что на большинстве компиляторов первым искомым путем является каталог, содержащий компилируемый файл *, а заголовок находится в том же файле, что и основной файл, но не в файле реализации класса.
Я не знаю, предлагает ли это ваш компилятор, но у некоторых есть подробный режим, в котором будут перечислены пути поиска заголовков. Если мой вышеупомянутый комментарий не поможет, то, возможно, это поможет.
- Предполагается, что вы включаете файл, используя кавычки. Единственная разница между использованием кавычек и угловых скобок в ваших включениях заключается в том, что использование кавычек означает, что в каталоге, содержащем файл .cpp, выполняется поиск заголовков перед всеми другими путями, которые были перечислены (в командной строке, в переменных окружения, в косвенном система включает пути).