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