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?