Ich weiß nicht, wie eine Mitgliedsfunktion von Funktionszeiger auf Konstruktor übergeben wird. meine Klasse haben eine Mitgliedsfunktion RHS, die in Funktion der Differentialprobleme ändern .. so muss ich Übergeben Sie eine Funktion im Konstruktor! Was ist der richtige Weg?initialisieren Mitgliedsfunktion von Funktionszeiger
class RhsOdeProblem
{
public:
// constructor without alalitical solution
constexpr RhsOdeProblem (double (*rhs)(double, double),
double, double, double, double) noexcept ;
virtual ~RhsOdeProblem() noexcept = default ;
RhsOdeProblem(const RhsOdeProblem&) noexcept = default;
RhsOdeProblem(RhsOdeProblem&&) noexcept = default ;
double RHS(double, double);
double AnaSol();
double dxdt(double, double);
void setRhs(double (*rhs)(double, double));
void setAnaliticalSolution(double (*realSol)(double,double));
double startTime ;
double endTime ;
double dt ;
double initValue ;
constexpr static double eps = 10e-8 ;
bool analiticalSolution ;
};
constexpr RhsOdeProblem::RhsOdeProblem (double (*rhs)(double, double),
double ti,
double tf,
double dt,
double y0) noexcept : startTime{ti}, endTime{tf},
dt{dt} , initValue{y0} ,
analiticalSolution{false}
{
setRhs(rhs);
}
Wie kann ich setRhs definieren ?? oder was ist der beste Weg? Vielen Dank im Voraus
Sie können keine Mitgliedfunktion-Post-Fakt festlegen. Sie können höchstens "RHS" als normalen Funktionszeiger verwenden. – StoryTeller