Question:
How does dynamic_cast work? How is it implemnted in compilers?
Answer:
dynamic_cast accesses the runtime type information that C++ automatically generates for every polymorphic class. This information is stored in an object of type std::type_info. The exact implemenation details are compiler-specific and are not specified in the Standard. However, most compilers add an entry in the vtable of every polymorphic class that holds the address of the type_info object associated with this class.