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 オブジェクトとして参照できるのに、ポインターでは同じことができないのはなぜですか?