Static_cast c ++

Static_cast c ++
En este artículo, discutiremos el concepto de reparto estático en el lenguaje de programación C ++. Para comenzar con este concepto, debemos saber sobre el concepto de casting y su tipo. En palabras simples, el casting está alterando el tipo de datos de una variable en otra. Hay dos tipos de fundición en el lenguaje de programación de C ++, uno es un casting implícito, y el segundo es un casting explícito.

Tipo de fundición en C ++:

En el lenguaje de programación C ++, hay dos formas de fundición o conversión de tipo que son:

  1. Casting de tipo implícito.
  2. Casting de tipo explícito.
  3. Casting de tipo implícito:

La fundición de tipo implícito también se llama conversión de tipo automatizado. El compilador lo realiza en la compilación de tiempo de ejecución real y no requiere ninguna entrada o acción del usuario. Este tipo de fundición ocurre cuando dos tipos de tipos de datos están presentes en una expresión. Por ejemplo:

int k = 8;
char alph = "u";
k = k + alfa;

Este es un ejemplo perfecto de conversión de tipo implícita o automatizada. El compilador convierte automáticamente el tipo de datos de la variable de caracteres en un tipo de datos enteros al girarlo en el tiempo de ejecución al valor estándar ASCII del alfabeto.

Casting de tipo explícito:

La fundición o conversión de tipo de tipo explícito no es la conversión de tipo automatizada; El usuario tiene que hacerlo en el código para convertir el tipo de datos de una variable al tipo de datos de otra variable. Por lo tanto, la fundición o conversión de tipo de tipo explícito generalmente se realiza cuando se usa un tipo de datos de pedido más pequeño para contener cualquier información; Sin embargo, debe transformarse en un tipo de datos más alto para evitar la pérdida de datos y almacenar más datos. La conversión por asignación se realiza en una expresión en el código, y la forma de escribir esta expresión se muestra a continuación:

# (Tipo de datos) Expresión

Ahora veremos los diferentes tipos de conversiones que pueden hacer los operadores de reparto en el lenguaje de programación C ++. Los operadores de fundición, también conocidos como operadores unarios, obligan al tipo de datos de una variable a la transición de un tipo a otro. Los operadores de elenco pueden hacer cuatro tipos de fundición diferentes: fundición estática, reparto dinámico, reinterpretado y constituyendo const.

Operador de fundición estática en C ++:

El yeso estático generalmente se usa cuando tenemos que convertir la variable enum en variables de flotadores, enteros o dos variables de tipo de datos en el lenguaje de programación C ++. También se usa cuando tenemos que cambiar una variable de puntero de una clase base a un puntero en una clase derivada.

En el método de reparto estático, no hay verificación durante el tiempo de ejecución de un programa para el tipo de fundición en comparación con la fundición de tipo dinámico. La sintaxis utilizada para ejecutar una conversión de reparto estática en el lenguaje de programación C ++ se escribe a continuación:

# static_cast (objeto);

En la expresión anterior, escribimos el tipo de datos en el que queremos convertir nuestra variable entre los soportes de ángulo, y en el soporte redondo, escribimos el nombre de la variable o el nombre del puntero, qué tipo de datos debe convertirse.

Convertir el tipo de datos de la variable flotante en un entero utilizando el método de fundición estática en Ubuntu 20.04:

En el programa C ++, a veces enfrentamos una situación en la que tenemos que cambiar un tipo de datos variables explícitamente, por lo que debemos usar el método de reparto estático. Para implementar este concepto en Ubuntu 20.04, abra el terminal, vaya al directorio de escritorio escribiendo "Desktop de CD", luego haga un .Archivo CPP ejecutando el comando "tocar" con el nombre de archivo y la extensión de .CPP. Luego, localice y abra su .archivo cpp en el escritorio

Hemos agregado una biblioteca de iostream para realizar operaciones de entrada y salida. Después de eso, hemos declarado el espacio de nombres ETS. Luego hemos comenzado nuestra función principal con el tipo de datos enteros. Dentro de nuestra función principal, tenemos una variable "F" con un tipo de datos flotante y asigna el valor de "3.5 ". Luego tenemos otra variable, "B" con el tipo de datos enteros. Y pasó un lanzamiento estático al valor de la variable "F". Luego, imprimimos la variable "B" usando Cout.

El código anterior debe guardarse; Haga clic en el botón Guardar asignado en la barra de navegación superior del archivo. Luego vaya a su terminal nuevamente, compile el archivo y luego ejecute si no hay errores utilizando los siguientes comandos respectivamente "nombre de archivo G ++" con la extensión de su archivo que es ".CPP "y"./"Para ejecutar el nombre de archivo legible que tiene el".fuera "como su extensión.

Como puede ver en el resultado anterior, hemos convertido con éxito la variable flotante en la variable de tipo de datos de entero. La salida muestra que solo el número es una variable entera antes de que se imprima el punto decimal. También podemos intercambiar el tipo de datos entre sí, ya que la variable flotante que se convertirá en entero será viceversa en el que convertiremos la variable entera en una variable de tipo de datos de flotación.

Convertir el tipo de datos de una variable entera en flotación utilizando el método de fundición estática:

Ahora invertiremos la conversión que hemos realizado en el ejemplo anterior; Seguiremos los pasos similares del ejemplo anterior como se muestra a continuación:

En el código anterior, hemos inicializado una variable entera "I" y asignamos el valor de "4". Luego tenemos otra variable "A" con el tipo de datos FLOAT y luego convertimos su tipo de datos en Flotar, y luego la imprimimos en la salida utilizando la instrucción CoUT. Después de compilar y ejecutar el código anterior, la salida se mostrará como:

Hemos convertido la variable entera en una variable flotante ya que el compilador no muestra error. Sin embargo, todavía hay alguna pérdida de datos ya que el entero es un tipo de datos de orden inferior, mientras que el tipo de datos de flotación es de orden superior.

Uso de Cast Static para dividir dos enteros sin pérdida de datos:

En este ejemplo, dividiremos dos enteros convirtiéndolos en una variable flotante para guardar los datos que un entero no puede contener. Para hacer esto, ejecutaremos el siguiente código donde inicializaremos dos enteros llamados "I" y "K" con un valor de "41" y "2". Luego tenemos otra variable con un tipo de datos flotantes titulado como "A" y convertirnos en una variable flotante y dividirla por la otra variable entera. Luego, para que se muestre la salida en la pantalla, hemos utilizado la instrucción Cout.

Después de compilar el código en el ejemplo anterior y ejecutarlo, obtendremos la siguiente salida:

La salida anterior explica que hemos dividido la variable entera. Aún así, antes de dividirse, convertimos la variable entera en el tipo de datos flotante y utilizamos el operador de fundición estática en la expresión para dividirlo también. El resultado muestra un número con el punto decimal, ya que ahora es una variable flotante, y puede almacenar números después del punto decimal.

Conclusión:

En este artículo, llegamos a conocer el mecanismo de casting en el lenguaje de programación C ++. También se exploraron muchos tipos de casting en profundidad, centrándose en por qué utilizamos tales métodos en la programación de C ++. También implementamos el concepto de fundición estática utilizando el operador de reparto estático en una expresión en el lenguaje de programación C ++ en el Ubuntu 20.04 entorno.