Jak najlepiej przekazywać metody do metod tej samej klasy

Mam tę klasę C ++ jedną wielką skomplikowaną metodącompute które chciałbym karmić „jądrem obliczeniowym”, metodą tej samej klasy. Myślę, że zrobiłbym coś na wzór

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_;}
...

}

ale nie jestem pewien, jak mógłbym przejśćadd lubmultiply. Alternatywą dla tego podejścia byłoby przekazanieENUM pewnego rodzaju do określeniaadd() lubmultiply(), ale chciałem uniknąćswitch lubif wewnątrz pętli.

Jakie są najlepsze praktyki?

questionAnswers(3)

yourAnswerToTheQuestion