Introducción a Patrones de Diseño en C++ con Qt4/1.15 La Palabra Clave const

De Wikilibros, la colección de libros de texto de contenido libre.
Versión para imprimir esta pagina

1.15 La Palabra Clave const[editar]

Declarar una entidad para ser const le dice al compilador que lo haga de "solo-lectura". const puede ser usado en muchos contextos, como veremos a continuación.

Debido a que no puede ser asignado también, un objeto const debe ser inicializado apropiadamente. Por ejemplo:


const int x = 33;
const int v[] = {3, 6, x, 2 * x};   // un arreglo const


Trabajando con las declaraciones anteriores:


++x ;           // error
v[2] = 44;      // error


Los compiladores pueden tomar ventaja de un objeto que comienza como solo-lectura en varias maneras. Para enteros y algunos tipos simples, no es necesario el almacenamiento para ser alojados por un const a menos que su dirección sea dada. Por lo tanto, la mayoría de los compiladores trata de alojarlo en memoria estática.


Es un buen estilo de programación el usar entidades const en lugar de embeber expresiones constantes (algunas veces llamados números mágicos) en tu código. Esto te hará ganar flexibilidad más tarde cuando necesites cambiar los valores. En general, aislar constantes mejorará el mantenimiento de tus programas. Por ejemplo, en lugar de algo como esto:


for(i = 0; i < 327; ++i) {
  ...
}


Utiliza algo como esto:


// sección de declaración de const en tu código
const int MEDIDA = 327;
...
for(i = 0; i < MEDIDA; ++i) {
   ...
}
Nota:
En algunos programas de C/C++, deberías de ver constantes definidas como macros de preprocesador como este:
#define STRSIZE 80
[...]
char str[STRSIZE];
Los macros de preprocesador son reemplazados después de que el compilador los ve. Usar macros en lugar de constantes significa que el compilador no puede mejorar el mismo nivel de tipo revisando como este puede proporcionar expresiones constantes. Generalmente las expresiones const se prefieren en lugar de las macros para definir valores constantes dentro de programas c++.



Versión para imprimir esta pagina