我想做这样的事情:
typedef int(A::*f_ptr)(int);
class A
{
int f1(int a){/*do something/*}
int f2(int a){/*do something else*/}
f_ptr pick_f(int i)
{
if(i)
return this->f1;
return this->f2;
}
}
原因是我希望类A的实例保存某些有用的变量,然后再根据用户输入选择所需的成员函数。但这是行不通的,因为我得到“指向绑定函数的指针只能用于调用该函数”的信息。如何编写一个返回非静态成员函数指针的函数?
您需要返回成员函数的地址,如下所示: