无效使用会员(你忘记了«&»?)

时间:2015-02-21 13:54:59

标签: c++ class gtk

示例代码.h

class My {
public:
    My();
    ~My();
    void Quit();
private:
};

示例代码.cpp

void My::Quit()
{
    gtk_main_quit();
}

My::My()
{
    ...

    item = gtk_menu_item_new_with_label("Quit");
    gtk_widget_show(item);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
    g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(this->Quit), NULL);

    ...
}

收到错误:无效使用会员(你忘记了«&»?)

我的问题是什么?

1 个答案:

答案 0 :(得分:3)

this->Quit不是有效的表达;它只能用于直接调用函数。

获取成员函数地址的语法是&My::Quit

该函数必须是静态成员或非成员才能用作回调。