Как лучше всего передавать методы в методы одного и того же класса
У меня есть этот класс C ++, что один большой сложный методcompute
что я хотел бы передать с помощью «вычислительного ядра», метод того же класса. Я полагаю, что я бы сделал что-то вроде
class test {
int classVar_ = 42;
int compute_add(int a, int b)
{
compute(int a, int b, this->add_())
}
int compute_mult(int a, int b)
{
compute(int a, int b, this->mult_())
}
int compute_(int a, int b, "pass in add or multiply as f()")
{
int c=0;
// Some complex loops {
c += f(a,b)
// }
return c;
}
int add_(int a, int b){a+b+classVar_;}
int multiply_(int a, int b){a*b+classVar_;}
...
}
но я не уверен, как мне пройтиadd
или жеmultiply
.
An alternative to this approach would be to pass in an ENUM
какой-то, чтобы указатьadd()
или жеmultiply()
, но я хотел избежатьswitch
или жеif
внутри петель.
Какова лучшая практика здесь?