Exactamente es lo que te dice tomas_sauron.
Vos le decis al compilador como debe interpretar el dato explícitamente mediante el operador
(tipo) dato.
Digamos que básicamente se pueden clasificar en cast implícitos y explícitos.
Un cast implícito es aquel que el compilador infiere automáticamente debido a que no ocurren alguna perdida de datos por ejemplo cuando asignas a una variable int el valor de un variable short (int es un tipo de dato cuyo rango de representación incluye al tipo de dato short).
Un cast explícito es aquel que el programador debe indicar "explícitamente" al compilador por que la operación realizada corresponde entre tipos de datos incongruentes que podrían provocar errores o perdida de datos: por ejemplo si asignas un valor flotante a una variable int; donde se perderan toda representación decimal (para más idea lee sobre las normas de representación de datos de punto flotante ieee 754).
La cuestion es , quizas yendome de tema, que en c++ existen otros operadores de cast somo los son el static_cast<tipo>(dato), el dynamic_cast<tipo>(dato).
Para información mas precisa pero a su vez concisa te recomiendo el siguiente link:
http://www.tutorialspoint.com/cplusplus/cpp_casting_operators.htmEspero haberte aclarado las cosas, Saludos