常数

在C++中const关键字的使用并不总是很清晰。你可能没有意识到const Something*声明了一个指向const Something的指针。这个指针的指向是可以被改变的,其指向的Something不能被改变。

因此,在方法参数中与Something*等效的RefPtrconst Glib::RefPtr<Something>&,而与const Something*等效的是const Glib::RefPtr<const Something>&

const ... &包围是处于效率考虑,就像在方法参数中使用const std::string&而不是用std::string一样,这是为了避免不必要的复制。