У меня есть алгоритм, который вызывает несколько функций для обработки своих данных.Каждая из этих функций совместно использует и манипулирует многими одинаковыми переменными.Поэтому я стараюсь избегать набора функций, которые содержат длинный список ссылочных аргументов, поскольку я считаю, что их становится очень трудно читать, тем более что многие из этих переменных являются контейнерами STL.В результате я реализовал функтор для выполнения работы алгоритма и определил функцию-обертку для функтора, как показано ниже
class myfunctor {
private:
... list of shared members ...
void A(..args..) { ..do some work on shared members.. }
void B(..args..) { ..do some work on shared members.. }
void C(..args..) { ..do some work on shared members.. }
public:
void operator()(class1& X, class2& Y) {
A( .. );
..
B( .. );
..
C( .. );
..etc..
}
};
void algorithm(class1& X, class2& Y) {
myfunctor obj;
obj(X, Y);
}
Мне просто интересно посмотреть, возможно, есть лучшийспособ реализации нескольких функций, которые все зависят от одних и тех же переменных, и считается ли это плохой практикой?