Нет, с чего бы это? Если у вас есть функциональность, которая логически является функцией (вычисление без сохранения состояния), и нет веских причин для ее реализации в виде класса, то просто реализуйте ее как функцию.
Совет "заменить вызовы функций классами с одинаковыми именами и конструкторами вызовов этого класса вместо исходного вызова функции" совершенно неверен: как вы можете заменить
int y = f(x);
на class f
и вызов его конструктора? Конструктор не имеет возвращаемого значения! Единственный способ заставить это работать - перегрузить operator()
на class f
, чтобы вы могли использовать один из
int y = f(x)();
int y = f()(x);
оба из которых бессмысленны. (Кроме того, вам нужно запомнить, какой из них вам нужен для каждого определяемого вами функционального объекта.)
Там должно быть что-то, что вы нам не говорите.