Avatar ·

Quand utiliser static_cast, dynamic_cast, const_cast et reinterpret_cast en C++ ?

Bonjour à tous ! J'ai commencé à apprendre le C++ et je suis tombé sur différents opérateurs de conversion de types. Je sais qu'en C il y a une simple conversion entre parenthèses, mais on dit qu'en C++ il faut utiliser des opérateurs spéciaux : `static_cast`, `dynamic_cast`, `const_cast` et `reinterpret_cast`. Je suis complètement perdu sur quand utiliser lequel. Par exemple, j'ai ce code : ```cpp class Base { public: virtual void show() { std::cout << "Base\n"; } }; class Derived : public Base { public: void show() override { std::cout << "Derived\n"; } void extra() { std::cout << "Extra\n"; } }; int main() { Base* basePtr = new Derived(); // Comment convertir correctement Base* en Derived* ? Derived* d1 = (Derived*)basePtr; // C-style cast — ça marche, mais est-ce correct ? int a = 10; d