const&
means, that this overload will be used only for const, non-const and lvalue object.
const A a = A();
*a;
&
means, that this overload will be used only for non-const object.
A a;
*a;
&&
means, that this overload will be used only for rvalue object.
*A();
for more information about this feature of C++11 standard you can read this post What is “rvalue reference for *this”?