La construcción de matrices constantes en c ++

Si usted tiene una matriz y no desea que sus contenidos a cambio, puede que sea una matriz constante. Las siguientes líneas de código, que se encuentran en el Array05 ejemplo, demostrar este enfoque:

const int Permanente [5] = {1, 2, 3, 4, 5} -cout lt; lt; Permanente [1] lt; lt; endl-

Este conjunto funciona como cualquier otra variedad, salvo que no se puede cambiar los números en su interior. Si se agrega una línea como la siguiente línea, se obtiene un error del compilador, porque el compilador es consciente de las constantes:

Permanente [2] = 5-

Aquí está el error que se obtiene cuando se intenta esto en Code :: Blocks:

error: asignación de sólo lectura ubicación 'Permanente [2]'

¿Qué pasa con una serie constante de nonconstants? ¿Puedes hacer eso? Bueno, a veces - dependiendo del compilador. Tan horrible como el siguiente código (que se encuentra en el Array06 ejemplo) ve - y no es estándar ANSI! - Se le permite hacer esto con las versiones anteriores de los compiladores gcc. (Microsoft Visual C ++ y Borland C ++ Builder no lo permiten, y el Código :: Blocks compilador que presenta con una error: asignación de matriz no válido mensaje de error.)

int no constante [5] = {1, 2, 3, 4, 5} -INT otralista [5] = {10, 11, 12, 13, 14} = -OtherList NonConstant-

En otras palabras, que la tercera línea está diciendo, " Olvida lo Otralista señala To- lugar, hacer que apunte a la primera matriz, {1,2,3,4,5}!" Ahora tu De Verdad no debe escribir código como este (recuerde, mantener las cosas simples y comprensibles), por lo que si desea evitar que este tipo de cosas, puede hacer que la constante de matriz:

const int no constante [5] = {1, 2, 3, 4, 5} -const int otralista [5] = {10, 11, 12, 13, 14} = NonConstant- -OtherList

Ahora, cuando el compilador llega a la tercera línea, que te da un error:

error: asignación de lectura única variable 'otralista'

Pero es posible que observe que la forma que usted hizo la constante de matriz fue de la misma manera que usted hizo sus elementos constantes en el código que llegó justo antes de este ejemplo. ¡Huy! ¿De que va todo eso? Resulta que hay algunas reglas.

La siguiente lista describe las reglas, en detalle, para la fabricación de matrices constantes:

  • Si quieres hacer una constante de matriz, puede preceder a su tipo con la palabra const. Al hacerlo, el nombre de la matriz es constante, y los elementos dentro de la matriz son además constante. Por lo tanto no se puede tener una matriz constante con elementos no constantes, ni se puede tener una matriz no constante con elementos constantes.

  • La noción de un matriz no constante sólo existe en gcc y no es estándar ANSI.

Si usted realmente desea conseguir técnico, el estándar C ++ ANSI dice que cuando se pone la palabra const frente a una declaración de matriz, usted no está haciendo la matriz constante- que estás diciendo que la matriz tiene únicas constantes.

Sin embargo, cuando se utiliza const De esta manera, la mayoría de los compiladores también hacer la propia matriz constante. Pero eso es la gente Fine- no deben tomar un nombre de matriz y copiarla a otra cosa. Eso no es un buen estilo de programación, y que sólo es pedir para los insectos - o, por lo menos, confusión - más tarde.




» » » » La construcción de matrices constantes en c ++