#define UCHAR unsigned char
typedef bool (*FUNC)(UCHAR uc1, UCHAR uc2);
typedef void(*PF)(FUNC, UCHAR*);
PF Assign;
class Class {
private:
UCHAR buf[32];
bool func(UCHAR c1, UCHAR c2) { }
public:
Class::Class(void) {
Assign( func, buf ); // <<< Microsoft VC++ error C3867
}
Class::~Class() { }
};
错误 C3867:“Class::func”:函数调用缺少参数列表;使用 '&Class::func' 创建指向成员的指针
如果我尝试上面错误消息中的建议
赋值(&Class::func, buf); // <<< Microsoft VC++ 错误 C2664
我收到此错误:
错误 C2664: 'void (FUNC,unsigned char *)' : 无法将参数 1 从 'bool (__thiscall Class::* )(unsigned char,unsigned char)' 转换为 'FUNC' 没有可以进行此转换的上下文
在不更改任何其他内容的情况下,我如何才能编译此 Assign() 函数?这些 typedef 来自我需要与之交互的库。