【问题标题】:invalid use of member (did you forget the «&» ?)成员的无效使用(您是否忘记了«&»?)
【发布时间】:2015-02-21 13:54:58
【问题描述】:

示例代码.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);

    ...
}

出现错误:成员使用无效(您是否忘记了«&»?)

我的问题是什么?

【问题讨论】:

  • 您可以编辑您的帖子以包含完整的错误消息吗?
  • 这是完整的错误信息..
  • 完整的错误消息将包括行号,有时甚至包括有问题的行。根据您的问题,我们必须猜测错误在您的源代码中的位置。

标签: c++ class gtk


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2016-11-27
    • 2016-11-07
    • 2022-12-02
    相关资源
    最近更新 更多