Αλλαγή τύπου
Μπορείτε να μετατρέψετε μια RefPtrs σε βασικούς τύπους, ακριβώς όπως με τους κανονικούς δείκτες.
Glib::RefPtr<Gtk::TreeStore> refStore = Gtk::TreeStore::create(columns); Glib::RefPtr<Gtk::TreeModel> refModel = refStore;
Αυτό σημαίνει ότι οποιαδήποτε μέθοδος που παίρνει ένα όρισμα const Glib::RefPtr<BaseType> μπορεί επίσης να πάρει έναν const Glib::RefPtr<DerivedType>. Η μετατροπή είναι σιωπηρή, ακριβώς όπως θα ήταν για έναν κανονικό δείκτη.
Μπορείτε επίσης να μετατρέψετε σε έναν παράγωγο τύπο, αλλά η σύνταξη είναι λίγο διαφορετική από ότι με έναν κανονικό δείκτη.
Glib::RefPtr<Gtk::TreeStore> refStore = Glib::RefPtr<Gtk::TreeStore>::cast_dynamic(refModel); Glib::RefPtr<Gtk::TreeStore> refStore2 = Glib::RefPtr<Gtk::TreeStore>::cast_static(refModel);