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í?

Respuestas a la pregunta(3)

Su respuesta a la pregunta