В зависимости от ответа на pmg вы должны знать, что хорошим способом избежать проблемы #include является окружение всего заголовочного файла инструкцией прекомпилятора, которая проверяет, был ли файл .h уже включен.
#ifndef __my_ADT_header
#define __my_ADT_header
/*
* your header declaration here
*/
#endif
это предотвращает ошибку, вызванную включением нескольких заголовков
надеюсь, это поможет