我不知道如何從構造函數上傳遞的函數指針初始化成員函數.. 我的類有一個成員函數RHS,它改變了差分問題的函數..所以我需要在構造函數中傳遞一個函數! 什麼是正確的方法?從函數指針初始化成員函數
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);
}
我如何定義setRhs?或者哪個是最好的方法? 在此先感謝
您無法設置成員函數 - 事實。最多你可以讓'RHS'成爲一個常規的函數指針。 – StoryTeller