Здравствуйте, PavelCH, Вы писали:
PCH>Не совсем Вас понял. Можете привести пример? Насколько я помню там работает так:
... ох, там тонкие моменты были когда наталкивался, сейчас не могу сразу воссоздать. Но это и не важно. Ясно что пространство имен в .cpp потенциально меньше пространства имен всего класса.
PCH>Ну она же не доступна наружу. Возможно это не надо?
Важно, не важно — общий принцип разработки гибкого и поддерживаемого кода, это маленькая связность, чем меньше тем лучше. Меньше связность — меньше контекста держать в голове и меньше вероятность нечаянно сломать.
PCH>Те функции, которые требуют дополнительные инклюды, я выделяю в отдельные cpp файлы. В итоге это снижает время компиляции, если я ничего не меняю эта часть функционала не перекомпилируется.
Т.е. если вдруг вам понадобилась одна функция, то вы создаёте для нее отдельный файл .cpp, а если, в процессе рефакторинга, она перестала быть нужна, вы всё обратно объединяете? Вы думаете это проще?
PCH>Не уверен что метод 3 занимает меньше писанины. Насчет перекомпиляция тоже вопрос. Вообще я стараюсь делать служебные функции static и невидимые в h — но они конечно не имеют доступа к private членам класса. Если он нужен и только в этом случае применяю private функции класса.
Слушайте, но бывают конечно классы, легкие снаружи, но сложные внутри, которые в реализации используют кучу функций и даже других классов. И вот в этом случае разделение на дополнительные файлы .h и.cpp оправдано, но применять такую стратегию постоянно — слишком, на мой взгляд.