Duplicata possible:
Quand faut-il utiliser static_cast, dynamic_cast et reinterpret_cast?
Avec ce code C++,
char* a = (char*) b;
J'ai reçu un avertissement warning: use of old-style cast
.
Quelle serait la distribution du nouveau style?
reinterpret_cast
, static_cast
, dynamic_cast
et const_cast
sont les alternatives au cast c ++.
const_cast
pour supprimer const/volatile d'une variable const.dynamic_cast
pour effectuer des vérifications de validité à l'exécution lors de la conversion entre des types polymorphesstatic_cast
pour effectuer par exemple une conversion ascendante/descendante dans une hiérarchie d'héritage, mais sans vérification d'exécution, ou pour effectuer explicitement des conversions qui pourraient être implicites (par exemple, float to int)reinterpret_cast
pour convertir entre des types non liés.Lisez cette rubrique pour en savoir plus sur les modèles de style C++ qui se présentent sous différentes formes:
Quand faut-il utiliser static_cast, dynamic_cast, const_cast et reinterpret_cast?