¿Por qué la siguiente pieza de código no se bloquea, aunque he eliminado el objeto?

<code>class object
{
  public:
    void check()
    {
      std::cout<<"I am doing ok..."<<std::endl;
    }
};

int main()
{
  object *p = new object;
  p->check();
  delete p;
  p->check();
  delete p;
  p->check();
}
</code>

EDITAR: Gurus, estoy confundido por muchas de las afirmaciones "puede fallar o no" ... ¿por qué no hay un estándar para decir, de esta manera tratamos con un bloque de memoria que se borra usando 'eliminar operador' ...? ¿Alguna entrada?

Respuestas a la pregunta(10)

Su respuesta a la pregunta