Você está na página 1de 2

1.

Casting en C++:

Conversiones explcitas de tipo: En el caso de las variables, asignamos papeles a los valores, segn sus caractersticas. Por ejemplo, para convertir el valor en coma flotante 14.232 a entero se usa el valor 14, podramos decir que 14 est haciendo el papel de 14.232 en la representacin. O que se ajusta a un molde o troquel: lo que sobra se elimina. En general, el uso de casting es obligatorio cuando se hacen asignaciones, o cuando se pasan argumentos a funciones con prdida de precisin. En el caso de los argumentos pasados a funciones es tambin muy recomendable aunque no haya prdida de precisin. Eliminar los avisos del compilador demostrar que sabemos lo que hacemos con nuestras variables, an cuando estemos haciendo conversiones de tipo extraas. En C++ hay varios tipos diferentes de casting, pero de momento veremos slo el que existe tambin en C. Un casting tiene una de las siguientes sintaxis: (<nombre de tipo>)<expresin> <nombre de tipo>(<expresin>) Esta ltima es conocida como notacin funcional, ya que tiene la forma de una llamada a funcin. En el ejemplo anterior, las lneas 3 y 4 quedaran: d = (int)(r + b); d = (int)(n + a + r); O bien: d = int(r + b); d = int(n + a + r); Hacer un casting indica que sabemos que el resultado de estas operaciones no es un int, que la variable receptora s lo es, y que lo que hacemos lo estamos haciendo a propsito. C++ dispone de cuatro operadores para realizar castings, algunos de ellos necesarios para realizar conversiones entre objetos de una misma jerarqua de clases. Operador static_cast<>

Este operador realiza una conversin de tipo durante la compilacin del programa, de modo que no crea ms cdigo durante la ejecucin, descargando esa tarea en el compilador. Este operador se usa para realizar conversiones de tipo que de otro modo hara el compilador automticamente, por ejemplo, convertir un puntero a un objeto de una clase derivada a un puntero a una clase base pblica:

Se usa para eliminar o aadir los modificadores const y volatile de una expresin. Por eso, tanto tipo como expresin deben ser del mismo tipo, modificadores const o volatile que tengan que aparecer o desaparecer.

Operador const_cast<>
salvo por los

Operador reinterpret_cast<>:

Se usa para hacer cambios de tipo a nivel de bits, es decir, el valor de la "expresin" se interpreta como si fuese un objeto del tipo "tipo". Los modificadores const y volatile no se modifican, permanecen igual que en el valor original de "expresin". Este tipo de conversin es peligrosa, desde el punto de vista de la compatibilidad, hay que usarla con cuidado. Operador typeid

El tipo puede ser cualquiera de los fundamentales, derivados o una clase, estructura o unin. Si se trata de un objeto, tambin puede ser de cualquier tipo. El valor de retorno un objeto constante de tipo type_info.

Você também pode gostar