So übergeben Sie Methoden am besten an Methoden derselben Klasse

Ich habe diese C ++ Klasse die eine große komplizierte Methodecompute das möchte ich mit einem "compute kernel" füttern, einer methode der gleichen klasse. Ich denke, ich würde etwas in der Art von tun

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

}

aber ich bin nicht sicher, wie ich weitergeben würdeadd odermultiply. Eine Alternative zu diesem Ansatz wäre die Einreichung einesENUM irgendeiner Art zu spezifizierenadd() odermultiply(), aber ich wollte a vermeidenswitch oderif in den Schleifen.

Was ist hier die beste Praxis?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage