¿Cuándo usar reinterpret_cast?

Estoy un poco confundido con la aplicabilidad dereinterpret_cast vsstatic_cast. Por lo que he leído, las reglas generales son usar reparto estático cuando los tipos se pueden interpretar en tiempo de compilación, de ahí la palabrastatic. Este es el reparto que el compilador de C ++ usa internamente también para los lanzamientos implícitos.

reinterpret_casts son aplicables en dos escenarios, convertir tipos enteros a tipos de puntero y viceversa o convertir un tipo de puntero a otro. La idea general que tengo es que esto no es portátil y debe evitarse.

Donde estoy un poco confundido es un uso que necesito, estoy llamando a C ++ desde C y el código C debe retener el objeto C ++, así que básicamente contiene unvoid*. Qué reparto se debe usar para convertir entrevoid * y el tipo de clase?

He visto el uso de ambosstatic_cast yreinterpret_cast? Aunque por lo que he estado leyendo parecestatic es mejor ya que el reparto puede suceder en tiempo de compilación? Aunque dice usarreinterpret_cast para convertir de un tipo de puntero a otro?

Respuestas a la pregunta(10)

Su respuesta a la pregunta