如何降低RefPtr

Kla*_*aus 4 c++ treeview glib gtkmm

在Gtk中,我有一个类层次结构,如下所示:

Gtk :: ListStore派生自Gtk :: TreeModel

Gtk::TreeView我可以得到get_model()一个Glib::RefPtr<Gtk::TreeModel>

如果我在我Gtk::Treeview的Gtk :: ListStore中使用Gtk :: TreeModel并调用get_model()我得到一个Glib::RefPtr< TreeModel >

但我想要Gtk :: ListStore的调用成员函数.

我怎么能把它Glib::RefPtr<Gtk::TreeModel>归结为Glib::RefPtr<Gtk::ListStore>.是否有标准方法或是否需要黑客攻击?或者如何使用视图和不同的商店类型进行操作.是否有任何检查功能,以便上传可以安全,可能是编译时检查或在运行时不可能?对任何文档的任何提示.

Nik*_*ita 6

用于向下转型的使用

Glib::RefPtr<Gtk::ListStore> ptrDerived = Glib::RefPtr<Gtk::ListStore>::cast_dynamic(treeModel);
Run Code Online (Sandbox Code Playgroud)

文件