Estaba leyendo mi libro en C++ (Deitel) cuando me encontré con una función para calcular el volumen de un cubo. El código es el siguiente:¿No es redundante "const" cuando se pasa por valor?
double cube (const double side){
return side * side * side;
}
La explicación para el uso del calificativo "const" era la siguiente: "El const calificado debe ser utilizado para hacer cumplir el principio de privilegio mínimo, diciéndole al compilador que la función no modifica lado variable ".
Mi pregunta: ¿no es el uso de "const" redundante/innecesario aquí ya que la variable se pasa por valor, por lo que la función no puede modificarlo de todos modos?
El significado de 'const' aquí es que no se puede modificar el parámetro' side' dentro de cubo método '() para evitar un comportamiento inesperado. –
a veces las cosas se refieren más a una "buena práctica" que a una necesidad. Creo que este es uno de esos momentos. – destan
Creo que las respuestas hicieron un buen trabajo al explicar por qué lo harías, pero solo agregaré eso a un llamante externo, el 'const' * es * redundante y no es parte de la firma de la función. Eso significa que puede dejarlo apagado en la declaración de la función sin cambiar nada. También puede eliminarlo más tarde si por alguna razón desea hacer que su código sea menos sostenible, y no afectará el código de llamada. –