or que comportamento diferente para ponteiros "TYPE * const&quot

O código abaixo está lidando com umTYPE* const ponteiro.

struct D {
  void Check ()
  {
    D* const p = new D; // 2nd test is "p = 0;"
    cout<<"p = "<<p<<endl;
    (D*&)p = new D;
    cout<<"p = "<<p<<endl; // prints 0, "p = 0;" at declaration
  }
};

int main ()
{
  D o;
  o.Check();
}

As minhas perguntas são,

Se você inicializar com0, mesmo que a digitação da próxima vez não funcione. Fazer essa conversão de tipo é um comportamento indefinido?this ponteiro também é deTYPE* const, então por que o compilador não permite a mesma operação parathis?

questionAnswers(3)

yourAnswerToTheQuestion