The use of the const
keyword in C++ is not always clear. You
might not realise that const Something* declares a pointer to a
const Something. The pointer can be changed, but not the
Something that it points to.
Therefore, the RefPtr
equivalent of
Something* for a method parameter is const
Glib::RefPtr<Something>&, and the equivalent of
const Something* is const Glib::RefPtr<const
Something>&.
The const ... &
around both is just for efficiency, like
using const std::string&
instead of
std::string
for a method parameter to avoid unnecessary
copying.