¿Hay algún caso de uso razonable, donde se debe usar const
puntero sobre la referencia?Elegir entre la referencia (T &) y el puntero const (T * const)
T obj;
T &r = obj; // style-1
T* const p = &obj; // style-2
Tanto el estilo se puede utilizar para el mismo propósito. Siempre prefiero el primer estilo en el código y considero el estilo posterior como obsoleto. Sin embargo, todavía me pregunto si se perdió algún caso de uso en el que el segundo estilo sea mejor.
Editar: No es limitante para el ejemplo anterior, hablo en un sentido más amplio,
void foo (T& r); // style-1
void foo (T* const p); // style-2
[Veo en algunas de las respuestas que, estilo-2 permite pasar nulo.]
¿Para qué? Sé que este código es ilustrativo de la sintaxis que está preguntando, pero ¿en qué escenario de código real se está preguntando? –
Para las funciones, la constitud del argumento de copia es un detalle de implementación irrelevante. –