Quando usar reinterpret_cast?

Estou um pouco confuso com a aplicabilidade dereinterpret_cast vsstatic_cast. Pelo que li, as regras gerais são usar conversão estática quando os tipos podem ser interpretados em tempo de compilação, daí a palavrastatic. Esse é o elenco que o compilador C ++ usa internamente também para lançamentos implícito

reinterpret_casts são aplicáveis em dois cenários, converter tipos inteiros em tipos de ponteiros e vice-versa ou converter um tipo de ponteiro em outro. A ideia geral que recebo é que isso não é portável e deve ser evitado.

Onde estou um pouco confuso é um uso que eu preciso, estou chamando C ++ de C e o código C precisa se apegar ao objeto C ++, então basicamente ele contém umvoid*. Que elenco deve ser usado para converter entrevoid * e o tipo de classe?

Vi uso de ambosstatic_cast ereinterpret_cast? Embora, pelo que tenho lido, pareçastatic é melhor, pois o elenco pode acontecer em tempo de compilação? Embora diga para usarreinterpret_cast para converter de um tipo de ponteiro para outro?

questionAnswers(10)

yourAnswerToTheQuestion