我正在尝试将指向类成员(Dialog::handler)的指针从其方法(在 Dialog::render 的范围内)传递给某个外部方法(Button::OnClick)。
这是一个小例子:
class Button
{
public:
void OnClick(void (*handler)())
{
handler();
}
};
class Dialog
{
public:
void handler()
{
//do stuff
}
void render()
{
auto button = new Button;
//Source of problem
button->OnClick(this->*handler);
}
};
但是编译器显示错误:
非标准语法;使用 '&' 创建指向成员的指针
我还尝试了其他组合,例如:
- 这个->处理程序。
- &this.handler。
- 这个。*处理程序。
- ETC
但显然他们失败了。