Что меня беспокоит в этом вопросе, так это контекст.
Был создан большой файл cpp, достаточно большой, чтобы можно было подумать о том, чтобы разбить его на более мелкие и более управляемые файлы. Предлагаемое разделение:
SS_main.cpp
SS_screen.cpp
SS_disk.cpp
SS_web.cpp
SS_functions.cpp
Кажется, это указывает на то, что существуют отдельные функциональные единицы с точки зрения спецификации и дизайна. Мы можем только догадываться о связи между этими единицами кода.
Тем не менее, было бы начать определять эти единицы кода так, чтобы каждый новый файл cpp имел свой собственный заголовочный файл, таким образом определяя интерфейсы этих единиц и (низкую) связь между ними для достижения (высокой) согласованности для каждого модуля .
Мы проводим рефакторинг здесь.
Недопустимо использовать включенные файлы cpp в этом контексте, так как это не дает никаких преимуществ. Единственный раз, когда я сталкиваюсь с включенными файлами cpp, это когда один из них включен для предоставления кода для кода отладки, и пример - для компиляции не встроенных версий функций. Это помогает в пошаговом выполнении кода в отладчике.