Como usar a palavra-chave const em c ++

Video: Tutorial C - 6 - Constante

UMA apontador é uma variável que “pontos em” outras variáveis ​​em C ++. a palavra-chave const significa que uma variável não pode ser alterado uma vez que tenha sido declarado e inicializado.

const double PI = 3.1415926535-

Argumentos para funções também podem ser declaradas const, o que significa que o argumento não pode ser alterado dentro da função. No entanto, este apresenta uma dicotomia interessante no caso de variáveis ​​de ponteiro. Considere a seguinte declaração:

Video: Magic Numbers

int const * pInt-

Exatamente o que é a constante aqui? O que você não pode mudar? É a variável cerveja ou o número inteiro apontada pelo cerveja? Acontece que ambos são possíveis, mas esta declaração declara um ponteiro variável para um local de memória constante. Assim, a seguinte:

const int * pInt- // declarar um ponteiro para uma const intint NVAR-pint = &nVar- // isso é permitido * Pint = 10 - // mas isso não é

Você pode alterar o valor de cerveja, por exemplo, atribuindo-lhe o endereço de NVAR. Mas o trabalho final no exemplo de trecho gera um erro do compilador desde que você não pode mudar o const int apontado para por cerveja.

E se você tivesse a intenção de criar uma variável ponteiro com um valor constante? O seguinte trecho mostra isso em ação:

int NVAR-int * const cpInt = &nVar- // declara um ponteiro constante // para um inteiro variável * cpInt = 10 // agora isso é legal ... cpInt ++ - // ... mas isso não é


a variável cpInt é um ponteiro constante para uma variável int. O programador não pode alterar o valor do ponteiro, mas ela pode alterar o valor do inteiro apontada.

o const-dade pode ser adicionado por meio de uma tarefa ou de inicialização, mas não pode ser (facilmente) lançar fora. Deste modo, o seguinte:

int NVAR = 10-int = pVar &NVAR-const int * pcVar = pVar- // este é legalint * pVar2 = pcVar - // isto não é

A atribuição pcVar = pVar- é ok - esta é a adição do const restrição. O trabalho final no fragmento não é permitido, uma vez que as tentativas para remover o const-ness restrição de pcVar.

Uma variável pode ser reformulada implicitamente como parte de uma chamada de função, tal como no exemplo que se segue:

fn void (int const& NVAR) -void mainFn () {int n-fn (10) - // chama fn (int const&) Fn (n) - // chama a mesma função por tratamento n} // como se fosse const

A declaração fn (int const&) diz que a função fn () não modifica o valor de seu argumento. Isso é importante quando se passa uma referência para a constante 10. Não é importante quando se passa uma referência para a variável N, mas não fere nada.

Video: 04.- Curso C++. Trabajar con Constantes

Finalmente, const pode ser usado como um discriminador entre as funções do mesmo nome:

fn void (int const& NVAR) fn -void (int& NVAR) -void mainFn () {int n-fn (10) - // chama o primeiro functionfn (n) - // chama a segunda função}

Publicações relacionadas