我有一个错误
CLASS_A::Determine()
,我不知道我犯了什么错误:
表观调用括号前的表达式必须具有(指向)函数类型
class CLASS_A
{
private:
double Calculate(int weldPt);
double Determine(double lb, double ub, double(CLASS_A::*Result)(double, int));
}
double CLASS_A::Calculate(int weldPt)
{
double LB, UB;
...
double x = Determine(LB, UB, &CLASS_A::Calculate); // Calling Determine() with Function Pointer argument
...
}
double CLASS_A::Determine(double lb, double ub, double(CLASS_A::*Result)(double, int))
{
...
double X = Result(20.2, 10); // ERROR! expression preceding parentheses of apparent call
// must have (pointer-to-) function type
...
}
我从来不擅长使用函数指针,在课堂上使用它们让我更加困惑。
有人可以帮我纠正我的代码吗?
成员函数指针需要类指针才能工作。在这种情况下,“this”指针可用:
double CLASS_A::Determine(double lb, double ub, double(CLASS_A::*Result)(double, int))
{
double X = (this->*Result)(20.2, 10);
}