Construindo matrizes constantes em c ++

Se você tiver uma matriz e você não quer que seu conteúdo para mudar, você pode torná-lo uma matriz constante. As seguintes linhas de código, encontrados no Array05

exemplo, demonstrar esta abordagem:

Video: Exercício com matriz no C++

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

Esta matriz funciona como qualquer outra matriz, exceto que você não pode mudar os números dentro dela. Se você adicionar uma linha como a seguinte linha, você recebe um erro do compilador, porque o compilador está ciente de constantes:

Permanente [2] = 5-

Aqui está o erro que você começa quando você tentar fazer isso no Code :: Blocks:

erro: atribuição de somente leitura location `Permanente [2]`

Que tal uma matriz constante de nonconstants? Você pode fazer aquilo? Bem, às vezes - dependendo do compilador. Como terrível como o código seguinte (que se encontra no Array06 exemplo) parece - e não é ANSI-padrão! - você tem permissão para fazer isso com versões mais antigas dos compiladores gcc. (Microsoft Visual C ++ e Borland C ++ Builder não permitir que ele, e o Código :: Blocks compilador apresenta-o com um erro: atribuição de matriz inválida mensagem de erro.)

Video: [C] Aula 65 - Alocação Dinâmica Parte 6 - Alocação de Matrizes

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

Em outras palavras, que a terceira linha está dizendo: “Esqueça o que OtherList aponta to- vez, torná-lo apontar para a primeira matriz, {1,2,3,4,5}!" Agora você realmente não deve escrever código como este (lembre-se, manter as coisas simples e compreensível), então se você quiser evitar esse tipo de coisa, você pode fazer a constante de matriz:



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

Agora, quando o compilador chega à terceira linha, que lhe dá um erro:

erro: atribuição de somente leitura variável `OtherList`

Mas você pode perceber que a maneira que você fez a constante de matriz era da mesma maneira que você fez seus elementos constantes no código que veio pouco antes de este exemplo. Ops! O que é isso tudo? Acontece que existem algumas regras.

A lista a seguir descreve as regras, em detalhe, para fazer matrizes constante:

  • Se você quiser fazer uma constante de matriz, você pode preceder o seu tipo com a palavra const. Quando você fizer isso, o nome da matriz é constante, e os elementos dentro da matriz são Além disso constante. Assim, você não pode ter uma matriz constante com elementos não constantes, nem pode ter uma matriz não constante com os elementos constantes.

  • A noção de uma matriz não constante existe apenas no gcc e não é padrão ANSI.

Se você realmente quiser obter técnico, o padrão C ++ ANSI diz que quando você colocar a palavra const na frente de uma declaração de matriz, você não está fazendo a matriz Constant você está dizendo que a matriz contém apenas constantes.

Video: Exercício resolvido C++ (matriz e função)

No entanto, quando você usa const Desta forma, a maioria dos compiladores também fazer a própria matriz constante. Mas isso é as pessoas de regularização não deve ser tomar um nome da matriz e copiá-lo para outra coisa. Isso não é bom estilo de programação, e está apenas pedindo para erros - ou, no mínimo, confusão - mais tarde.


Publicações relacionadas