|
|
dynamic_cast performs a runtime cast that verifies the validity of the cast. It has this general form:
dynamic_cast<type> (expr)
The main use for dynamic_cast is to perform casts on polymorphic types. For example, given two polymorphic classes B and D, with D derived from B, a dynamic_cast can always cast a D* pointer into a B* pointer. A dynamic_cast can cast a B* pointer into a D* pointer only if the object being pointed to actually is a D object. In general, dynamic_cast will succeed if the attempted polymorphic cast is permitted (that is, if the target type can legally apply to the type of object being cast). If the cast cannot be made, then dynamic_cast evaluates to null. (If a bad cast occurs while casting a reference, a bad_cast exception is thrown.)
|
|