El operador const_cast en C ++ se utilizará en este artículo. Revisemos el casting en C ++ antes de continuar.
Una metodología para convertir un tipo de datos o el otro está lanzando. El operador del elenco es el operador empleado para esta función. Este es un operador que obliga a la conversión entre dos tipos de datos diversos. Un operador de reparto es un operador en lenguaje de programación de C ++ que requiere transformar un tipo de datos en otro.
El const_cast es uno de los operadores de reparto, que se transforma entre dos tipos de datos con valores específicos. Un valor no inicializado se puede cambiar a un valor inicializado utilizando el método de tipo const_cast para asociar. Const_cast es problemático porque hace que el lenguaje de programación C ++ sea incapaz de evitar que los usuarios busquen cambiar un objeto constante. Como resultado, esta acción está indefinida.
Ejemplo no. 1
Se puede agregar o eliminar un modificador constante o dinámico de un tipo usando el operador const_cast. El operador const_cast se usará en los siguientes ejemplos:
#incluir
usando el espacio de nombres 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;
regresar 0;
Aquí, vamos a incorporar la biblioteca . Se ha utilizado el siguiente espacio de nombres estándar. Llamamos a la función f (). Pasamos el puntero (* q) como el parámetro de esta función. La declaración "cout" se utilizará para mostrar el resultado. Aquí, hemos estado usando el método Main (). Crearemos una variable "I" y estableceremos su valor como 30. El entero se especificará como su tipo de datos, y esta variable será constante. Ahora, hemos estado creando un nuevo puntero (*j), y aquí, proporcionamos el valor de la variable constante "i" a este puntero.
Se construirá el puntero del tipo de datos entero (*e), y damos su valor como const_cast. Luego, cambiamos el valor de la variable "I". Aquí, no actuará como una variable constante. Al usar el valor de la variable "I", le daremos el valor al puntero constante (* J1). Entonces aplicamos const_cast. Establecimos el valor del puntero "E1". La declaración de devolución se está utilizando.
Ejemplo no. 2
En este caso, la variable tiene un valor constante, y el puntero constante apunta a esa variable. Sin embargo, podemos modificar el valor de la variable construyendo un nuevo puntero que tiene un tipo de datos similar y utilizando const_cast.
#incluir
usando el espacio de nombres STD;
int main ()
const int t = 40;
const int* u = & t;
cout<<"The original value:"<<*u<<"\n";
int* x = const_cast(u);
*x = 70;
cout<<"The updated value:"<<*u;
regresar 0;
En primer lugar, el paquete se importará. El espacio de nombres estándar se utilizará en la siguiente línea. Comencemos el código en el cuerpo de la función principal (). Se inicializa una variable llamada "t"; Su tipo de datos es un entero. Le damos el valor "40."La palabra clave" const "es antes de su tipo de datos" int ", por lo que este valor sería constante. El valor de la variable constante "t" se especificará al puntero (u) cuando construimos este puntero.
Luego, utilizamos la instrucción "Cout" para mostrar la frase "el valor original" en la pantalla. Para utilizar const_cast, se construirá un nuevo puntero. En este caso, el puntero "X" se generó con un tipo de datos enteros similares. Por lo tanto, podemos modificar el valor del puntero constante "U" si le damos a este puntero "U". Esto se refiere a la variable constante requerida "t", dentro de const_cast, y asigna un número aleatorio al puntero x. Al utilizar const_cast en este método, hemos modificado el valor constante de la variable de 40 a 70. La instrucción "cout" se usará para imprimir el valor modificado en la pantalla. Para finalizar el código, el comando "return" tendría que ingresarse.
Ejemplo no. 3
Modificar un valor que se especifica explícitamente como constante es la funcionalidad indefinida. Evaluar el siguiente código:
#incluir
usando el espacio de nombres STD;
int main ()
const int t = 40;
const int* u = & t;
cout<<"The original value:"<<*u<<"\n";
int* x = const_cast(u);
*x = 70;
cout<<"The updated value:"<<*u;
regresar 0;
Al comienzo del código, incluiremos el archivo de encabezado . Esta biblioteca será responsable de las metodologías de entrada y salida. Luego utilizamos el espacio de nombres estándar. Ahora, declararemos una función. Dentro de esta función, crearemos un puntero (p). Luego asignamos el valor al puntero (p). Hemos empleado la declaración de devolución, que devuelve el valor del puntero. Inicializamos una variable "V", y el tipo de datos de esta variable es un entero. Le asignamos el valor "20". Este valor será constante ya que hemos utilizado la palabra clave "const" antes de inicializar esta variable.
Aquí construimos un nuevo puntero (P_1). Y junto con esto, hemos estado usando const_cast. La función "f (p 1)" tiene como objetivo modificar el valor de la variable constante "V" usando constd Cast. Definimos una función y pasamos el valor del nuevo puntero como argumento. A continuación, el comando "cout" se usa para mostrar la salida. Al final, se utilizará una declaración de devolución.
Conclusión
En este artículo, hemos discutido const_cast en C++. Los datos pueden convertirse de un tipo a otro por un procedimiento llamado fundición. Hemos ejecutado algunos ejemplos que demuestran el uso principal de const_cast. La palabra const_cast transformará un puntero en una entidad constante en una referencia a una variable no constante. El operador const_cast no se aplicará para cambiar un estado variable directamente. Un atributo que no se definió como "const" podría modificarse efectivamente si su constante se abandona.