我上了这个课:
class Test
{
public:
int fnc(int a) {
return a + 1;
};
struct {
int(*fp)(int a);
} s;
void assign() { s.fp = &(this->fnc); } // <-- error here
};
但是我得到一个编译错误(VS2017)。错误是:
错误C2276'&':对绑定成员函数表达式的非法操作
我也尝试过不使用'&',但这只是警告我需要将其包括在内。 不可能吗?
注意:这是一个简化的示例,它说明了该问题。在这种情况下,我无法更改结构中的指针类型,因为该结构需要传递给驻留在用C编写的.lib文件中的第3方函数。我想要做的是使第3方lib调用我提供的位于类中的函数。