我有“表观调用的括号前面的表达式必须具有(指向)函数类型”错误,我不知道我犯了什么错误。
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, &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
...
}
我从来不擅长使用函数指针,在课堂上使用它们让我更加自信。当我在 CLASS_A::Determine() 中收到“表观调用的括号前的表达式必须具有(指向)函数类型的表达式”错误时,任何人都可以帮助我纠正我的代码吗?
成员函数指针需要类指针才能工作。在这种情况下,“this”指针可用:
double CLASS_A::Determine(double lb, double ub, double(CLASS_A::*Result)(double, int))
{
double X = (this->*Result)(20.2, 10);
}