从指向另一个类成员的类成员中的参数调用函数指针

问题描述 投票:0回答:1

我有“表观调用的括号前面的表达式必须具有(指向)函数类型”错误,我不知道我犯了什么错误。

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() 中收到“表观调用的括号前的表达式必须具有(指向)函数类型的表达式”错误时,任何人都可以帮助我纠正我的代码吗?

c++ function-pointers
1个回答
0
投票

成员函数指针需要类指针才能工作。在这种情况下,“this”指针可用:

double CLASS_A::Determine(double lb, double ub, double(CLASS_A::*Result)(double, int))
{
  double X = (this->*Result)(20.2, 10);
}
© www.soinside.com 2019 - 2024. All rights reserved.