C++ 错误:无效使用void表达式 #包括 #包括 使用名称空间std; 阶级胜利 { 受保护的: GtkWidget*窗口; 公众: GtkWidget*get_window(){return window;} void set_window(GtkWidget*w){window=w;} 无效集合标题(字符串s) { gtk_window_set_title(gtk_window(window),s.c_str()); } }; int main(int argc,char*argv[]) { /*初始化GTK+及其所有支持库*/ gtk_init(&argc,&argv); 赢得obj1; obj1.设置_窗口(gtk_窗口_新建(gtk_窗口_顶层)); obj1.设置标题(“你好世界”); GtkWidget*w=obj1.get_window(); obj1.设置窗口(gtk窗口小部件显示(w)); /*将控制权移交给主回路*/ gtk_main(); 返回0; }

C++ 错误:无效使用void表达式 #包括 #包括 使用名称空间std; 阶级胜利 { 受保护的: GtkWidget*窗口; 公众: GtkWidget*get_window(){return window;} void set_window(GtkWidget*w){window=w;} 无效集合标题(字符串s) { gtk_window_set_title(gtk_window(window),s.c_str()); } }; int main(int argc,char*argv[]) { /*初始化GTK+及其所有支持库*/ gtk_init(&argc,&argv); 赢得obj1; obj1.设置_窗口(gtk_窗口_新建(gtk_窗口_顶层)); obj1.设置标题(“你好世界”); GtkWidget*w=obj1.get_window(); obj1.设置窗口(gtk窗口小部件显示(w)); /*将控制权移交给主回路*/ gtk_main(); 返回0; },c++,gtk,C++,Gtk,gtk_widget_show()返回void 您正在调用obj1.set\u窗口(void) 更改: #include <gtk/gtk.h> #include <string> using namespace std; class WIN { protected: GtkWidget *window; public: GtkWidget* get_window(){ return window; } void s

gtk_widget_show()
返回void

您正在调用
obj1.set\u窗口(void)

更改:

#include <gtk/gtk.h>
#include <string>

using namespace std;

class WIN
{    
    protected:
    GtkWidget *window;

    public:

    GtkWidget* get_window(){ return window; }
    void set_window(GtkWidget* w){ window = w; }
    void set_title(string s) 
    {
        gtk_window_set_title (GTK_WINDOW(window), s.c_str());
    }

};

int main (int argc, char *argv[])
{
    /* Initialize GTK+ and all of its supporting libraries. */
    gtk_init (&argc, &argv);
    WIN obj1;
    obj1.set_window(gtk_window_new (GTK_WINDOW_TOPLEVEL));
    obj1.set_title("Hello World");
    GtkWidget *w = obj1.get_window();
    obj1.set_window(gtk_widget_show(w));

    /* Hand control over to the main loop. */
    gtk_main();
    return 0;
}

似乎gtk_widget_show()返回void。这是您以无效方式使用的void表达式


< /P>删除C标签,因为这显然不是C代码。@ Timalk Geel'Kal:谢谢你的建议,我会处理这些。在C++中,<代码>(空)<代码>是不必要的,它只是<代码>()。我据此编辑了你的文章。@DeadMG:请不要。void是用来说明他在做什么的,它将void传递给一个需要其他东西的函数。@DeadMG:编辑没有被破坏的东西也是不礼貌的,尤其是当你的编辑本身被破坏的时候。

obj1.set_window(gtk_widget_show(w));
gtk_widget_show(w);