Мой старый профессор по программированию предложил разбивать модули на каждые несколько сотен строк кода для удобства обслуживания. Я больше не занимаюсь разработкой на C ++, но в C # я ограничиваю себя одним классом на файл, и размер файла не имеет значения, если с моим объектом ничего не связано. Вы можете использовать области #pragma, чтобы изящно уменьшить пространство редактора, не зная, есть ли у компилятора C ++, но если он есть, то обязательно используйте их.
Если бы я все еще программировал на C ++, я бы сгруппировал функции по использованию, используя несколько функций для каждого файла. Поэтому у меня может быть файл с именем «Service.cpp» с несколькими функциями, которые определяют этот «сервис». Наличие одной функции на файл, в свою очередь, вызовет сожаление, что каким-то образом вернется в ваш проект.
Наличие нескольких тысяч строк кода на файл иногда не требуется. Сами функции никогда не должны превышать несколько сотен строк кода. Всегда помните, что функция должна делать только одну вещь и быть минимальной. Если функция выполняет более одного действия, она должна быть преобразована в вспомогательные методы.
Также никогда не повредит иметь несколько исходных файлов, которые определяют один объект. То есть: 'ServiceConnection.cpp' 'ServiceSettings.cpp' и т. Д.
Иногда, если я создаю один объект, а он владеет другими объектами, я объединяю несколько классов в один файл. Например, элемент управления Button, который содержит объекты «ButtonLink», я мог бы объединить его с классом Button. Иногда нет, но это решение «предпочтения момента».
Делай, что лучше для тебя. Можно немного поэкспериментировать с разными стилями на небольших проектах. Надеюсь, это немного вам поможет.