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?