what i learned is there are 4 different types of casting:

Dynamic casting:

In polymorphic classes (classes with at least one virtual function), it can also perform down-casting (base → derived) and cross-casting (between siblings), safely at runtime using RTTI (Run-Time Type Information) stored in the v table.


Static casting:


Reinterpret casting:


Constant casting:

Common use cases: