Препроцессор тут не так используется. Он должен оградить повторные включения заголовков, а не определений классов.
у меня в реальной прожке множество заголовочный файлов подключается, поэтому и прописал эти #ifndef и пр. сразу
все исправил, как в твоем примере, в итоге студия вот, что пишет:
Ошибка 1 error C2011: 'A' : 'class' type redefinition
Ошибка 3 error C2079: 'a' uses undefined class 'A'
Ошибка 2 error C2504: 'A' : base class undefined
уже гораздо лучше)) уже не 14 ошибок)
P.S. вопрос вдогонку, если есть чисто виртуальная функция в базовом классе, то при разбивке на эти модули ведь слово "virtual" уже не пишется, так??
Добавлено
все заработал, как только исправил "A.h" так: