Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: All
May 15, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Using dynamic_cast

You can apply operator dynamic_cast only to polymorphic objects (a polymorphic object is one that has at least one virtual member function). This is a requirement of the C++ standard. There are two reasons for this restriction. In order to perform a dynamic cast, the implementation needs to access the runtime type information of the object to which dynamic_cast is applied. This information is retrieved through the object's vptr, and as you probably know, only polymorphic objects have a vptr. However, there's another reason for this restriction—a philosophical one: the type of a non-polymorphic object is static and can be determined at compile time. Therefore, there's not much point in generating runtime type information for non-polymorphic objects in the first place. Note also that some compilers require that you switch on a compiler option in order to enable RTTI support.
Danny Kalev
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date