我正在尝试用指向函数成员的指针做一些事情,但我无法弄清楚这是如何工作的。
我有一个看起来像这样的 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 但这对我不起作用。
我什至可以这样做吗?
干杯