Conversión de tipos
Puede convertir RefPtr a tipos base, al igual que a los punteros normales.
Glib::RefPtr<Gtk::TreeStore> refStore = Gtk::TreeStore::create(columns); Glib::RefPtr<Gtk::TreeModel> refModel = refStore;
Esto significa que cualquier método que tome un argumento const Glib::RefPtr<BaseType> también puede tomar un const Glib::RefPtr<DerivedType>. La conversión es implícita, al igual que lo sería con un puntero normal.
También puede convertir a un tipo derivado, pero la sintaxis es un poco diferente que con un puntero normal.
Glib::RefPtr<Gtk::TreeStore> refStore = Glib::RefPtr<Gtk::TreeStore>::cast_dynamic(refModel); Glib::RefPtr<Gtk::TreeStore> refStore2 = Glib::RefPtr<Gtk::TreeStore>::cast_static(refModel);