C ++ const_cast

C ++ const_cast
Para basicamente todas as intenções, como processos com tipos de dados, interações com ponteiros e processos nas classes, o C ++ é uma linguagem eficiente e potente da programação que pode ser usada para manipular informações e armazenamento. Em C ++, os processos const_cast podem ser utilizados com tipos de dados e classes de dados.

O operador const_cast em C ++ será usado neste artigo. Vamos revisar o elenco em C ++ antes de prosseguir.

Uma metodologia para converter um tipo de dados ou outro está lançando. O operador do elenco é o operador empregado para esta função. Este é um operador que obriga a conversão entre dois tipos de dados de vários dados. Um operador de elenco é um operador na linguagem de programação C ++ que requer transformar um tipo de dados em outro.

O const_cast é um dos operadores de elenco, que transforma entre dois tipos de dados com valores específicos. Um valor não inicializado pode ser alterado para um valor inicializado usando o método const_cast para associar o tipo. Const_cast é problemático porque torna a linguagem de programação C ++ incapaz de impedir que os usuários procurem alterar um objeto constante. Como resultado, essa ação é indefinida.

Exemplo não. 1

Um modificador constante ou dinâmico pode ser adicionado ou eliminado de um tipo usando o operador const_cast. O operador const_cast será usado nos seguintes exemplos:

#incluir
usando namespace std;
void f (int* q)
cout << *q << endl;

int main (void)
const int i = 30;
const int* j = & i;
int* e = const_cast(j);
f (e);
int i1 = 60;
const int* j1 = &i1;
int* e1 = const_cast(J1);
*e1 = 90;
retornar 0;



Aqui, vamos incorporar a biblioteca . O seguinte espaço de nome padrão foi usado. Chamamos a função f (). Passamos o ponteiro (* q) como o parâmetro desta função. A declaração "cout" será usada para mostrar o resultado. Aqui, estamos usando o método principal (). Vamos criar uma variável "eu" e definir seu valor como 30. O número inteiro será especificado como seu tipo de dados, e essa variável será constante. Agora, estamos criando um novo ponteiro (*j), e aqui, fornecemos o valor da variável constante "i" para este ponteiro.

O ponteiro do tipo de dados inteiro (*e) será construído e damos seu valor como const_cast. Então, mudamos o valor da variável "eu". Aqui, não atuará como uma variável constante. Ao usar o valor da variável "i", daremos o valor ao ponteiro constante (* j1). Então nós aplicamos const_cast. Definimos o valor do ponteiro "E1". A declaração de retorno está sendo usada.

Exemplo não. 2

Nesse caso, a variável tem um valor constante, e o ponteiro constante está apontando para essa variável. No entanto, podemos modificar o valor da variável construindo um novo ponteiro com um tipo de dados semelhante e usando const_cast.

#incluir
usando namespace std;
int main ()
const int t = 40;
const int* u = & t;
cout<<"The original value:"<<*u<<"\n";
int* x = const_cast(você);
*x = 70;
cout<<"The updated value:"<<*u;
retornar 0;



Primeiro de tudo, o pacote será importado. O espaço para nome padrão será usado na próxima linha. Vamos iniciar o código no corpo da função principal (). Uma variável chamada "t" é inicializada; Seu tipo de dados é um número inteiro. Damos o valor “40."A palavra -chave" const "está antes do seu tipo de dados" int ", então esse valor seria constante. O valor da variável constante "t" será especificado para o ponteiro (u) quando construímos este ponteiro.

Em seguida, utilizamos a declaração "cout" para exibir a frase "o valor original" na tela. Para utilizar const_cast, um novo ponteiro será construído. Nesse caso, o ponteiro "x" foi gerado com um tipo de dados inteiro semelhante. Assim, podemos modificar o valor do ponteiro constante "u" se darmos a este ponteiro "u". Isso se refere à variável constante necessária "T", dentro do const_cast, e aloce um número aleatório ao ponteiro x. Ao utilizar o const_cast neste método, modificamos o valor constante da variável de 40 a 70. A declaração "cout" será usada para imprimir o valor modificado na tela. Para encerrar o código, o comando "retornar" teria que ser inserido.

Exemplo não. 3

Modificar um valor que é explicitamente especificado como constante é uma funcionalidade indefinida. Avalie o seguinte código:

#incluir
usando namespace std;
int main ()
const int t = 40;
const int* u = & t;
cout<<"The original value:"<<*u<<"\n";
int* x = const_cast(você);
*x = 70;
cout<<"The updated value:"<<*u;
retornar 0;



No início do código, incluiremos o arquivo de cabeçalho . Esta biblioteca será responsável pelas metodologias de entrada e saída. Então utilizamos o espaço de nome padrão. Agora, vamos declarar uma função. Dentro desta função, criaremos um ponteiro (P). Então atribuímos o valor ao ponteiro (P). Empregamos a declaração de retorno, que retorna o valor do ponteiro. Inicializamos uma variável "V", e o tipo de dados dessa variável é um número inteiro. Nós atribuímos o valor "20". Este valor será constante, pois utilizamos a palavra -chave "const" antes de inicializar esta variável.

Aqui, construímos um novo ponteiro (p_1). E junto com isso, estamos usando const_cast. A função “F (P 1)” visa modificar o valor da variável constante “V” usando const elenco. Definimos uma função e passamos o valor do novo ponteiro como seu argumento. Em seguida, o comando "cout" é usado para exibir a saída. No final, uma declaração de retorno será usada.

Conclusão

Neste artigo, discutimos const_cast em c++. Os dados podem ser convertidos de um tipo para outro por um procedimento chamado de elenco. Executamos alguns exemplos que demonstram o principal uso de const_cast. A palavra const_cast transformará um ponteiro em uma entidade constante em uma referência a uma variável não constante. O operador const_cast não será aplicado para alterar um estado variável diretamente. Um atributo que não foi definido como "const" poderia ser efetivamente modificado se sua constante for abandonada.