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?

questionAnswers(3)

yourAnswerToTheQuestion