Valores constantes

O const palavra-chave especifica que o valor de uma variável é constante e informa o compilador para impedir que o programador modificá-lo.

// constant_values1.cpp
int main() {
   const int i = 5;
   i = 10;   // C3892
   i++;   // C2105
}

No C++, você pode usar o const palavra-chave em vez da # define diretiva de pré-processamento para definir valores constantes.Valores definidos com const estão sujeitos a verificação de tipos e pode ser usado no lugar de expressões constantes.No C++, você pode especificar o tamanho de uma matriz com um const variável da seguinte maneira:

// constant_values2.cpp
// compile with: /c
const int maxarray = 255;
char store_char[maxarray];  // allowed in C++; not allowed in C

Em C, padrão de valores constantes para ligação externa, portanto, eles podem aparecer apenas em arquivos de origem.No C++, padrão de valores constantes para ligação interna, que permite que eles apareçam nos arquivos de cabeçalho.

O const palavra-chave também pode ser usado em declarações do ponteiro.

// constant_values3.cpp
int main() {
   char *mybuf = 0, *yourbuf;
   char *const aptr = mybuf;
   *aptr = 'a';   // OK
   aptr = yourbuf;   // C3892
}

Um ponteiro para uma variável declarada como const podem ser atribuídos apenas a um ponteiro que também é declarado como const.

// constant_values4.cpp
#include <stdio.h>
int main() {
   const char *mybuf = "test";
   char *yourbuf = "test2";
   printf_s("%s\n", mybuf);

   const char *bptr = mybuf;   // Pointer to constant data
   printf_s("%s\n", bptr);
   
   // *bptr = 'a';   // Error
}

Saída

test
test

Você pode usar ponteiros para dados constantes como parâmetros da função para impedir que a função modificando um parâmetro passado através de um ponteiro.

Para objetos que são declarados como const, você só pode chamar funções de membro constante.Isso garante que o objeto de constante nunca é modificado.

birthday.getMonth();    // Okay
birthday.setMonth( 4 ); // Error

Você pode chamar o membro constante ou nonconstant funções para um objeto nonconstant.Você também pode sobrecarregar uma função de membro usando o const palavra-chave; Isso permite que uma versão diferente da função a ser chamado para objetos de constantes e nonconstant.

Você não pode declarar construtores ou destruidores com o const palavra-chave.

357syhfh.collapse_all(pt-br,VS.110).gifC e C++ diferenças de const

Quando você declara uma variável como const em um arquivo de código do código-fonte C, você fazê-lo como:

const int i = 2;

Você pode usar essa variável em outro módulo da seguinte maneira:

extern const int i;

Mas para obter o mesmo comportamento no C++, você deve declarar sua const variáveis como:

extern const int i = 2;

Se você quiser declarar uma extern variável em um arquivo de código fonte C++ para uso em um arquivo de código do código-fonte C, use:

extern "C" const int x=10;

Para impedir a desconfiguração do nome pelo compilador C++.

Consulte também

Referência

Const (C++)

Funções de membro constante