Расширения в конце файлов более или менее бессмысленны.Важно то, что у вас есть полное определение для всех классов, которые вы пытаетесь скомпилировать, даже если они еще не реализованы.Поскольку расширения .h и .cc или .cpp являются произвольными, самое важное значение имеет содержимое файлов.
Вообще говоря, если вы в состоянии полностью описать объект класса, то вы выиграли 'не сталкиваться с проблемами.Если определение класса еще не существует в цепочке, которую вы настроили (что может случиться с циклически зависимыми заголовками), тогда вы должны сделать немного магии.
Дело в том,если вы столкнетесь с этой проблемой, вам, как дизайнеру / разработчику, решать только вам