Como usar a palavra-chave const em c ++
Video: Tutorial C - 6 - Constante
Conteúdo
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}