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

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

我有一个错误

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
  ...
}

我从来不擅长使用函数指针,在课堂上使用它们让我更加困惑。

有人可以帮我纠正我的代码吗?

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

成员函数指针需要类指针才能工作。在这种情况下,“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.