생성자에 전달 된 함수 포인터에서 멤버 함수를 초기화하는 방법을 알지 못합니다. 내 클래스에는 차등 문제의 기능이 변경되는 멤버 함수 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