父类方法中不兼容的cv限定符

Incompatible cv qualifiers in parent class method

本文关键字:cv 类方法 不兼容 父类      更新时间:2023-10-16

我正在摆弄c++和gtkmm,试图创建一个自定义类,它调用.glade文件来构建Gtk相当基本的接口。这个类派生自Gtk::Window,但是当我在类本身上调用get_widget方法时,我得到错误:

types ‘const T_Widget*’ and ‘myClass* const’ have incompatible cv-qualifiers

类定义:

class myClass: public Gtk::Window{
    public:
    myClass(); 
    protected:
    //...
    Glib::RefPtr<Gtk::Builder> builder;
    //...
}

然而,我正试图将数据从glade文件上传到我的类(在类构造函数上):

//...
builder = Gtk::Builder::create_from_file("../glade/myClass.glade");
builder->get_widget("window1",this);
//...

myClass* constconst myClass*不一样。在第一个中,指针是常量,在第二个中,对象是常量。只需像这样声明:const myClass*

但是你的问题似乎无关(我的坏),GTK有一个特殊的函数派生类:Gtk:建造者::get_widget_derived,