C++ で参照がどのように処理されるかについて、私がよく理解していないことがあります。
B objB = B();                   // Regular B object
const B &refConstObjB = objB;   // Reference to const B object
B* ptrB = new B();              // Regular pointer to B
B* const &refPtrConstB = ptrB;  // Reference to const pointer to B 
上記のすべてがうまくコンパイルされます。ただし、次の場合はそうではありません。
const B* &refConstPtrB = ptrB;  // Reference to pointer to const B
オブジェクトとポインターの両方が非 const として宣言されていることを考えると、オブジェクトを const オブジェクトとして参照できるのに、ポインターでは同じことができないのはなぜですか?