我是一个有用的助手,可以为您翻译文本。
我希望声明一个指向A的指针,然后将A的成员函数之一的函数指针传递给另一个函数。 类似这样的代码:
我正在尝试使用函数成员指针来做一些事情,但我无法弄清楚它是如何工作的。
我有一个类A,看起来像这样
class A
{
public:
float Plus (float a, float b) { return a+b; }
float Minus (float a, float b) { return a-b; }
float Multiply(float a, float b) { return a*b; }
float Divide (float a, float b) { return a/b; }
};
我希望声明一个指向A的指针,然后将A的成员函数之一的函数指针传递给另一个函数。 类似这样的代码:
void Will_Get_Function_Pointer(float a, float b, float (A::*pt2Func)(float, float))
{
(...)
}
我会使用类似这样的方式进行调用
A* myA = new A;
Will_Get_Function_Pointer(1.00,2.00, &myA->Minus)
我不能使用静态/常量成员,因为在我的最终实现中,A将指向一个A对象集合中特定的A对象,看起来像这样:
vector<A> vecA;
myA = &vecA[xxx]
这样做会彻底失败
typedef float (A::*pA)(float x, float y);
pA p = &myA->Minus;
编译器告诉我使用 &A::Minus,但这对我来说行不通。
我能做到吗?
谢谢