Dynamic_Cast C++

Dynamic Cast C



El molde dinámico en el lenguaje de programación C++ se discutirá en este artículo. Para empezar, debemos entender la noción de casting y muchos tipos de casting. El proceso de alterar el tipo de datos de una variable se conoce como conversión. El casting se divide en dos categorías en el lenguaje de programación C++: casting implícito y casting explícito.

Conversión de tipos de datos en C++:

La conversión de tipos es el procedimiento de alterar el tipo de datos a algún otro tipo de datos. Hay dos tipos de conversión o conversión de tipo en el lenguaje de programación C++: conversión implícita y explícita. La conversión de tipo automatizada es otro nombre para el encasillado implícito. Lo realiza el compilador durante la compilación en tiempo real y no necesita ninguna entrada o acción del usuario. Cuando hay dos clases de tipos de datos en una expresión, se produce esta forma de conversión. Por ejemplo:

  Interfaz gráfica de usuario, texto, aplicación Descripción generada automáticamente







En el código dado, podemos ver que se insertan una variable entera y una variable de carácter en la expresión de la última línea, y se cambia el valor de la variable entera 'i'. El número ASCII equivalente a 'a' se convertirá en un valor de carácter y se agregará al valor entero de la variable 'i' en esta declaración. Si se imprime el valor de la variable “i”, el resultado será un total de ambos valores. El compilador transforma automáticamente el tipo de datos de la variable de carácter en un tipo de datos entero al convertirlo al valor estándar ASCII del alfabeto de la derecha, que es un gran ejemplo de conversión de tipo implícita o automatizada en el tiempo de ejecución.



Ahora bien, cuando se trata de conversión de tipo o tipo explícito, no es un proceso automatizado; el usuario debe convertir manualmente un tipo de datos de una variable a otro tipo de variable en el código. Los tipos de datos generalmente se organizan en una jerarquía basada en su espacio de memoria y la cantidad de información que pueden contener. Por lo tanto, cuando se usa un tipo de datos de orden inferior para almacenar cualquier información, pero tiene que transformarse en un tipo de datos de orden superior para que la pérdida de información pueda minimizarse y se pueda almacenar más y más información, la conversión de tipo o conversión de tipo explícita es comúnmente hecho. Por ejemplo, debido a que una variable de tipo entero no puede almacenar valores después del punto decimal, podemos perder alguna información si continuamos usando variables enteras. Para evitar esta pérdida, convertimos la variable entera en una variable flotante, guardando los valores después de los puntos decimales y evitando la pérdida de información. La conversión de tipo explícita en el lenguaje de programación C++ se puede lograr de una de dos maneras: mediante asignación o utilizando el operador de conversión. La conversión de asignación se realiza en una expresión de código y la sintaxis de esta expresión se proporciona a continuación.



# “expresión (tipo de datos)”

En el código anterior, debemos poner un tipo de datos válido dentro del corchete, y después del corchete, debemos escribir la variable o expresión que deseamos modificar en el tipo de datos escrito dentro del corchete.





Ahora veremos el tipo de conversión realizada por los operadores de conversión en el lenguaje de programación C++. Los operadores de conversión también se denominan operadores unarios que obligan a una variable a cambiar su tipo de datos de uno existente a otro. Hay cuatro tipos de operadores de reparto de reparto: reparto estático, reparto dinámico, reparto constante y reparto de reinterpretación.

Fundición dinámica en C++:

La conversión dinámica en el lenguaje de programación C++ se basa en un concepto llamado RTTI (identificación de tipo de tiempo de ejecución). RTTI es una función presente en varios lenguajes de programación como C/C++, Ada y Object Pascal. La identificación o información del tipo de tiempo de ejecución es una función que identifica y extrae la información sobre los detalles del tipo de datos de un objeto en el tiempo de ejecución de un programa. Esta función proporciona una ruta segura para los métodos de conversión de tipos como la función 'typeid' o la conversión dinámica de tipos. Detecta la información del tipo de datos en el tiempo de ejecución y ayuda a la conversión del tipo de datos cuando los operadores están en juego.



La conversión dinámica se utiliza principalmente en C++ para la conversión descendente segura en tiempo de ejecución. Para trabajar con la conversión dinámica, la clase base debe tener 1 función virtual. La conversión dinámica solo funciona con clases base polimórficas porque utiliza esta información para determinar la conversión hacia abajo segura. Un operador de conversión dinámica realiza la conversión dinámica. Ahora que conocemos los conceptos relacionados con el casting dinámico, podemos pasar a la parte de implementación. Primero veamos la sintaxis para usar la conversión dinámica en el lenguaje de programación C++, que se escribe a continuación:

# “dynamic_cast (Expresión)”

En la expresión anterior, la primera parte describe el nombre del operador; en los corchetes angulares, escribimos el nombre del tipo de datos en el que necesitamos convertir nuestra expresión, y en los corchetes, escribimos el nombre de la variable u objeto que queremos convertir.

Ahora que sabemos cómo usar el operador de conversión dinámica y cómo completar los parámetros para convertir tipos de datos de variables, podemos usarlo para convertir tipos de datos de variables.

Usando el método de conversión dinámica en Ubuntu 20.04:

Para implementar este concepto, debemos usar varias clases con las que trabajar para convertir objetos de la clase por herencia. Entonces, para hacer eso primero, primero debemos saber que el archivo del programa C ++ en el entorno Ubuntu se almacena con la extensión '.cpp', por lo que para crear este archivo en nuestro escritorio, abra una terminal y escriba 'cd Desktop' en el línea de comando, luego presione enter y escriba 'touch filename .cpp' para crear un archivo con la extensión '.cpp'. Ahora escribiremos un código en ese archivo para crear una clase base y 2 clases derivadas, y en el código del controlador, usaremos el operador de conversión dinámica.

  Interfaz gráfica de usuario, descripción de texto generada automáticamente

Salga del archivo después de hacer clic en el botón Guardar. Regrese a la terminal y cree el archivo usando el comando 'g ++' con su nombre de archivo y la extensión '.cpp'. Se creará un archivo con la extensión “.out” usando este comando. Ahora puede ejecutar ese archivo ingresando './' seguido de su extensión '.out'.
  Texto Descripción generado automáticamente

En este programa, el puntero de clase base almacena objetos de clase 1 derivados (d1). La clase base de conversión dinámica, el puntero retuvo el objeto Derived1 y lo asignó a la clase derivada 1, que proporcionó una conversión dinámica válida.

Conclusión :

Este artículo nos enseñó el método de conversión de tipos utilizado en el lenguaje de programación C++. El tipo de conversión también se discutió en detalle y nos enfocamos en la necesidad de por qué usamos tales métodos en la programación de C++. Discutimos la función de asistencia que ayuda a la conversión del tipo de datos de la variable al obtener información y verificar la conversión correcta llamada RTTI. También implementamos el concepto de conversión dinámica mediante el uso del operador de conversión dinámica en una expresión en el lenguaje de programación C++ en el entorno Ubuntu 20.04.