Αλλαγή τύπου
Μπορείτε να μετατρέψετε μια RefPtrs σε βασικούς τύπους, ακριβώς όπως με τους κανονικούς δείκτες.
auto refStore = Gtk::TreeStore::create(columns); Glib::RefPtr<Gtk::TreeModel> refModel = refStore;
This means that any method which takes a const Glib::RefPtr<BaseType>& argument can also take a const Glib::RefPtr<DerivedType>&. The cast is implicit, just as it would be for a normal pointer.
Μπορείτε επίσης να μετατρέψετε σε έναν παράγωγο τύπο, αλλά η σύνταξη είναι λίγο διαφορετική από ότι με έναν κανονικό δείκτη.
auto refStore = std::dynamic_pointer_cast<Gtk::TreeStore>(refModel); auto refStore2 = std::static_pointer_cast<Gtk::TreeStore>(refModel);