Если проект разбит на множество файлов, описывающих разных наследников некоторого абстрактного класса, то в файле, в котором нужно использовать всех этих наследников будет много include-ов в начале.
Стоит ли создать ещё один header, внутри которого будет просто список include-ов всех этих наследников и подключать уже его?
Или может стоит перенести всех наследников в тот же файл, где описан и абстрактный класс-родитель?
Или оставить как есть, с длинным списком include-ов в файле использующем всех наследников?
имхо, не стоит создавать ни отдельный хидер, ни, тем более, включать наследников к абстрактному классу. Если первое - это просто ещё один файл, который нужен всего лишь для того, чтобы в cpp сделать один инклюд вместо нескольких, то во втором сразу две проблемы: 1) абстрактный класс на то и абстрактный класс, что ему не нужно знать ни о каких наследниках, это, по сути, просто интерфейс; 2) это может существенно отразится на времени компиляции, ведь каждый инклюд добавляется в cpp целиком препроцессором вместе со всеми включенными в него инклюдами. Поэтому, имхо, хороший тон - это включение только необходимых хидеров в cpp файл, а в хидерах, по возможности, использовать предекларацию.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Насколько я знаю cin оставляет символ '\n' в потоке из-за чего последующие вызовы cinget() и cin
Необходимо посадить событие с помощью атрибута onclick на тег <p>Объясните, пожалуйста, почему в данном случае функция не вызывается?