Я работаю с библиотекой c++, которая не написана мной.
Некоторые заголовочные файлы включают другие классы, но все же имеют своеобразное "дублирующее" пустое определение класса. Какова цель этого поведения?
#include "OtherClass.h"
class OtherClass;
class ThisClass {
// definitions here
};
Это объявление вперед класса, которое является объявлением без полного определения идентификатора. Это помогает сократить время компиляции, а также круговые зависимости.
В вашем сценарии вы должны включить или перенаправить объявление класса, но не оба.