Cómo pasar mejor los métodos a métodos de la misma clase
Tengo esta clase de C ++ que un gran método complicadocompute
que me gustaría alimentar con un "núcleo de cómputo", un método de la misma clase. Me imagino que haría algo en la línea 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_;}
...
}
pero no estoy seguro de cómo pasaríaadd
omultiply
. Una alternativa a este enfoque sería pasar en unaENUM
de alguna clase para especificaradd()
omultiply()
, pero quería evitar unswitch
oif
dentro de los bucles.
¿Cuál es la mejor práctica aquí?