【发布时间】:2015-12-22 17:44:42
【问题描述】:
我试图用我以前尝试过的方法将函数分配给一个按钮,该方法以前也有效,但由于某种原因,我现在从我的编译器中得到了这个:
错误 C3867:“WindowReq::calc_cb”:非标准语法;使用“&”来 创建一个指向成员的指针
代码如下:
class WindowReq : public Fl_Window
{
public:
WindowReq(int W, int H, const char* Title);
Fl_Input* InVel;
Fl_Input* InDeg;
Fl_Button* Calc;
private:
void calc_cb(Fl_Widget* o, void* v);
};
WindowReq::WindowReq(int W, int H, const char* Title) : Fl_Window(W, H, Title)
{
begin();
Calc = new Fl_Button((WINSIZE - 150), 50, 100, 30, "Calculate path");
Calc->callback(calc_cb, this);
InVel = new Fl_Input(70, 50, 100, 30, "Velocity:");
InDeg = new Fl_Input(((WINSIZE / 3) + 50), 50, 100, 30, "Angle:");
end();
show();
}
我不知道问题出在哪里,我们将不胜感激。
编辑:根据 VisualStudio,这是导致错误的行:
Calc->callback(calc_cb, this);
【问题讨论】:
-
this 指的是类而不是类方法。所以你应该找到其他方法来做到这一点。
-
它应该指向类,这样我就可以让其中的小部件毫不费力地进行通信。无论如何,取出“this”并不能使其编译。