Dinâmico_cast c ++

Dinâmico_cast c ++
O elenco dinâmico na linguagem de programação C ++ será discutido neste artigo. Para começar, devemos entender a noção de elenco e muitos tipos de elenco. O processo de alterar o tipo de dados de uma variável é conhecido como fundição. O elenco é dividido em duas categorias na linguagem de programação C ++: elenco implícito e elenco explícito.

Tipo de dados Conversão em C ++:

Tipo de fundição é o procedimento de alterar o tipo de dados para algum outro tipo de dados. Existem dois tipos de conversão de fundição ou tipo na linguagem de programação C ++: fundição implícita e explícita. A conversão do tipo automatizada é outro nome para a TypeCasting implícita. É realizado pelo compilador durante a compilação em tempo real e não precisa de nenhuma entrada ou ação do usuário. Quando há dois tipos de tipos de dados em uma expressão, essa forma de elenco ocorre. Por exemplo:

No código fornecido, podemos ver que uma variável inteira e uma variável de caracteres são inseridas na última expressão de linha, e o valor da variável inteira "i" é alterado. O número ASCII equivalente a "A" será convertido em um valor de caractere e adicionado ao valor inteiro da variável "i" nesta declaração. Se o valor da variável "i" for impresso, o resultado será um total desses dois valores. O compilador transforma automaticamente o tipo de dados da variável de caractere em um tipo de dados inteiro, convertendo -o no valor padrão ASCII do alfabeto à direita, que é um ótimo exemplo de conversão implícita ou automatizada no tempo de execução.

Agora, quando se trata de fundição explícita ou conversão de tipo, não é um processo automatizado; O usuário deve converter manualmente um tipo de dados de uma variável em outro tipo de variável no código. Os tipos de dados geralmente são organizados em uma hierarquia com base em seu espaço de memória e na quantidade de informações que eles podem conter. Portanto, quando um tipo de dados de ordem inferior é usado para armazenar qualquer informação, mas deve ser transformado em um tipo de dados de ordem superior, para que a perda de informações possa ser minimizada e mais e mais informações podem ser armazenadas, o tipo explícito de fundição ou a conversão do tipo é comumente feito. Por exemplo, como uma variável do tipo inteiro não pode armazenar valores após o ponto decimal, podemos perder algumas informações se continuarmos usando variáveis ​​inteiras. Para evitar essa perda, convertemos a variável inteira em uma variável flutuante, economizando valores após pontos decimais e impedindo a perda de informações. A conversão do tipo explícito na linguagem de programação C ++ pode ser realizada de duas maneiras: via atribuição ou utilizando o operador de elenco. A conversão de atribuição é feita em uma expressão de código e a sintaxe para esta expressão é fornecida abaixo.

# “(Tipo de dados) expressão”

No código acima, devemos colocar um tipo de dados válido dentro do suporte e, após o suporte, devemos escrever a variável ou expressão que desejamos modificar no tipo de dados escrito dentro do suporte.

Agora vamos analisar o tipo de conversão feita pelos operadores de elenco na linguagem de programação C ++. Os operadores de elenco também são chamados de operadores unários que forçam uma variável para alterar seu tipo de dados de um existente para outro. Existem quatro tipos de operadores de fundição: elenco estático, elenco dinâmico, elenco const e reinterprete o elenco.

Fundição dinâmica em c ++:

A fundição dinâmica na linguagem de programação C ++ é baseada em um conceito chamado RTTI (identificação do tipo de tempo de execução). RTTI é uma função presente em várias linguagens de programação como C/C ++, ADA e Objeto Pascal. Identificação ou informação do tipo de tempo de execução é uma função que identifica e extrai as informações sobre os detalhes do tipo de dados de um objeto no tempo de execução de um programa. Esta função fornece um caminho seguro para métodos de fundição de tipo, como a função "typeId" ou a fundição do tipo dinâmico. Ele detecta as informações do tipo de dados no tempo de execução e auxilia a conversão do tipo de dados quando os operadores estão em jogo.

A fundição dinâmica é utilizada principalmente em C ++ para o elenco de tempo de execução em tempo de execução. Para trabalhar com o elenco dinâmico, a classe base deve ter 1 função virtual. O elenco dinâmico funciona apenas com classes base polimórficas porque utiliza essas informações para determinar a fundição segura para baixo. Um operador de elenco dinâmico faz elenco dinâmico. Agora que sabemos sobre os conceitos relacionados ao elenco dinâmico, podemos ir para a parte de implementação. Vejamos primeiro a sintaxe para usar a fundição dinâmica na linguagem de programação C ++, que está escrita abaixo:

# “Dynamic_cast (expressão)”

Na expressão acima, a primeira parte descreve o nome do operador; Nos colchetes do ângulo, escrevemos o nome do tipo de dados em que precisamos converter nossa expressão e, entre os colchetes redondos, escrevemos a variável ou o nome do objeto em que queremos converter.

Agora que sabemos como usar o operador dinâmico de elenco e preencher os parâmetros para converter tipos de dados de variáveis, podemos usá -lo para converter tipos de dados de variáveis.

Usando o método de elenco dinâmico no Ubuntu 20.04:

Para implementar esse conceito, devemos usar várias classes para trabalhar para converter objetos da classe por herança. Então, para fazer isso primeiro, devemos primeiro saber que o arquivo do programa C ++ no ambiente do Ubuntu é armazenado com a extensão “.CPP ”, para criar esse arquivo em nossa área de trabalho, abra um terminal e digite“ CD Desktop ”na linha de comando, pressione Enter e digite“ Touch FileName .CPP "para criar um arquivo com o".Extensão CPP ”. Agora vamos escrever um código nesse arquivo para criar uma classe base e 2 classes derivadas e, no código do driver, usaremos o operador dinâmico de elenco.

Saia do arquivo depois de clicar no botão Salvar. Retorne ao terminal e construa o arquivo usando o comando "g ++" com o nome do seu arquivo e o ".Extensão CPP ”. Um arquivo com a extensão “.out ”será criado usando este comando. Agora você pode executar esse arquivo digitando “./”Seguido pelo seu“.fora ”extensão.

Neste programa, os objetos de classe 1 da classe Base Classe (D1). A classe base de fundição dinâmica, o ponteiro manteve o objeto Derivado1 e o alocou para a classe 1 derivada, que forneceu fundição dinâmica válida.

Conclusão:

Este artigo nos ensinou o método de fundição de tipo usado na linguagem de programação C ++. O tipo de elenco também foi discutido em detalhes e focamos na necessidade de por que usamos esses métodos na programação C ++. Discutimos a função de assistência que ajuda a conversão do tipo de dados da variável buscando informações e verificando a conversão correta chamada RTTI. Também implementamos o conceito de fundição dinâmica usando o operador de fundição dinâmica em uma expressão na linguagem de programação C ++ no Ubuntu 20.04 Ambiente.