Como melhor passar métodos em métodos da mesma classe
Eu tenho essa classe C ++ que um grande método complicadocompute
que eu gostaria de alimentar com um "kernel de computação", um método da mesma classe. Eu acho que faria algo ao longo das linhas de
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_;}
...
}
mas não tenho certeza de como eu iria passaradd
oumultiply
. Uma alternativa a essa abordagem seria passar em umENUM
de algum tipo para especificaradd()
oumultiply()
, mas eu queria evitar umswitch
ouif
dentro dos loops.
Qual a melhor prática aqui?