Cuatro tipos de conversiones en C
En C, a veces necesitas llamar manualmente al operador void* new() (por ejemplo, escribir una clase contenedora), o Es necesario utilizar la ubicación void* nueva. En este caso, necesitas usar B* p = static_castlt;B*gt;(void*)
const_cast se usa principalmente en un nivel alto, cuando se trata de algunos modismos estándar.
const_cast se puede evitar en gran medida mediante el uso de mutable. Pero algunas situaciones son inevitables.
Si una clase implementa una versión constante de una función miembro y una versión no constante de la función miembro.
Normalmente, la versión no constante llama a const_castlt;gt;(const). Se repite un lado del código.
El caso más común es que operador[]() llama a la versión constante de operador[]().
En este caso, se debe utilizar const_castlt;gt; para eliminar los atributos const.
En resumen, la programación entre A* y B* rara vez se utiliza en C, pero es esencial en el desarrollo de plataformas como win32.
const_castlt;gt; se utiliza principalmente para llamar a la versión constante con la versión no constante para evitar la redundancia de código.
const_cast