【发布时间】:2014-08-29 11:39:05
【问题描述】:
在 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>。是否有标准方式或是否需要 hack 或如何处理视图和不同商店类型的典型过程。是否有任何检查功能以便向上转换可以安全完成,可能是编译时检查,或者如果在运行时不可能?任何文档的任何提示。
【问题讨论】:
-
从基类转换为派生类是向下转换,而不是向上转换。