Во-первых: вы не можете наследовать от неизвестного или даже частично известного класса.Чтобы определить King
, вы должны сначала включить Figure.h
(предположим, что King
определено в другом файле).
В более общем смысле, относительно того, как организовать код, не существует одного определенногоответ.Лично, в одном конкретном случае (где число производных классов четко определено и строго ограничено), я бы, вероятно, обрезал углы и определил бы их все в Figure.h
, но есть очень хорошие аргументы для использования отдельного заголовка длякаждый - если ничего другого, вам не нужно включать заголовки для отдельных фигур, за исключением файлов, в которых они созданы.Другим решением будет использование фабричных функций для фигур и определение производных классов в исходном файле, который реализует фабричные функции.