成员的无效使用(您是不是忘记了«&»?)

Posted

技术标签:

【中文标题】成员的无效使用(您是不是忘记了«&»?)【英文标题】: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);

    ...

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

我的问题是什么?

【问题讨论】:

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

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

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

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

【讨论】:

以上是关于成员的无效使用(您是不是忘记了«&»?)的主要内容,如果未能解决你的问题,请参考以下文章

C++ 成员函数的无效使用(你忘记了'()'吗?)

成员函数的无效使用(你忘记了“()”吗?)

无效的块标记。您是不是忘记注册或加载此标签?

第 3 行的块标记无效:“原始”。您是不是忘记注册或加载此标签?使用 Django 1.9 和 Jinja2

第 1 行的块标记无效:“设置”。您是不是忘记注册或加载此标签

无效的块标记“其他”。您是不是忘记注册或加载此标签?