¿Es este párrafo en Code Complete 2 al revés, o lo estoy entendiendo mal?

8

En el capítulo 13, cuando hablamos de punteros, hay un párrafo:

A veces, sin embargo, le gustaría tener la semántica de pasar por referencia, es decir, que el objeto pasado no debe modificarse, con la implementación de pasar por valor, es decir, pasar el objeto real en lugar de una copia.

Parece que el autor cometió un error y mezcló los dos. ¿Es esto cierto o no entiendo lo que dice correctamente?

mowwwalker
fuente

Respuestas:

12

Tienes razón y esto ya está en la página de erratas del libro.

La referencia debe ser un valor En la página 333, cambie: "A veces, sin embargo, le gustaría tener la semántica de un pase por referencia" A "Sin embargo, a veces, le gustaría tener la semántica de un pase por valor"

El valor debe ser referencia En la página 333, Cambiar: "con la implementación de un pase por valor" Para: "con la implementación de un pase por referencia"

Clemente J.
fuente
3

Sí, parece estar mezclado. Cambie y agregue un poco más, y tiene sentido.

A veces, le gustaría tener la implementación de pasar por valor, es decir, el objeto pasado es una copia y los cambios no afectan al original, con el semanario de paso por referencia, es decir, el objeto en sí no se pasa.

Esto sería algo así como un parámetro de referencia constante. Esto le permitiría tener una estructura grande, mutable, que era, dentro del contexto de una función particular, inmutable.

jmoreno
fuente
1
¿Querías cambiar "implementación" y "semántica" así como "valor" y "referencia"? Porque, para mí, habría tenido más sentido si mantuvieras la "implementación" y la "semántica" tal como están y solo cambiaste el "valor" y la "referencia". Además, ¿qué quiere decir con "parámetro de referencia constante (no existe)"? Las referencias constantes existen.
sepp2k
2
¿Qué quieres decir con que no existe? const T&absolutamente existe en C ++.
DeadMG
1
Mi error en la referencia constante.
jmoreno