Éstos son algunos grandes artículos y un libro que encontré explicando las ventajas del uso de const:
¿Puedo proponer la siguiente máxima para usted?
Si un objeto/variable puede calificarse ha sido constante, debería serlo. En el peor de los casos, no costará nada. En el mejor de los casos, documentará el rol del objeto/variable en su código y le permitirá al compilador la oportunidad de optimizar su código aún más.
Algunos compiladores descuidan explotar el potencial de optimización con el uso de 'const' y eso ha llevado a muchos expertos a descuidar el uso de parámetros constantes por valor cuando podría ser utilizado. Esta práctica requiere más rigor, pero no será perjudicial. En el peor de los casos, no pierde nada, pero tampoco gana nada y, en el mejor de los casos, gana con este enfoque.
Para los que no parece entender la utilidad de un const en un parámetro de valor de una función/método ... aquí es un ejemplo corto que explica por qué:
.cpp
void WriteSequence(int const *, const int);
int main()
{
int Array[] = { 2, 3, 4, 10, 12 };
WriteSequence(Array, 5);
}
#include <iostream>
using std::cout;
using std::endl;
void WriteSequence(int const *Array, const int MAX)
{
for (int const * i = Array; i != Array + MAX; ++i)
cout << *i << endl;
}
¿Qué hubiera pasado si hubiese quitado la const delante de int MAX y hubiera escrito MAX + 1 dentro de esta manera?
void WriteSequence(int Array[], int MAX)
{
MAX += MAX;
for (int * i = Array; i != Array + MAX; ++i)
cout << *i << endl;
}
¡Bien, su programa fallará! Ahora, ¿por qué alguien escribiría "MAX + = MAX"? ? Tal vez un error humano, tal vez el programador no se sentía bien ese día o tal vez el programador simplemente no sabía cómo escribir el código C/C++. Si hubieras tenido const, ¡el código ni siquiera se hubiera compilado!
¡El código de seguridad es un buen código y no cuesta nada agregar "const" cuando lo tiene!
Aquí es una respuesta de un puesto diferente para una pregunta muy similar:
"const no tiene sentido cuando el argumento se pasa por valor, ya que no será la modificación objeto de la persona que llama. "
Wrong.
Se trata de auto-documentar su código y sus suposiciones.
Si el código tiene muchas personas que trabajan en él y sus funciones son no trivial entonces usted debe marcar "const" cualquier y todo lo que lata. Al escribir el código de resistencia industrial, siempre debe suponer que sus compañeros de trabajo son psicópatas intentando para obtener todo lo que puedan (especialmente porque a menudo es usted mismo en el futuro).
Además, como alguien ha mencionado anteriormente , podría ayudar al compilador optimizar las cosas un poco (aunque es una posibilidad muy remota ).
Aquí está el enlace: answer.
Una pregunta similar estaba en esta publicación de StackOverflow: http://stackoverflow.com/questions/117293/use-of-const-for-function-parameters – Void