19.2.1. The dynamic_cast
Operator
A dynamic_cast
has the following form:
dynamic_cast<type*>(e)dynamic_cast<type&>(e)dynamic_cast<type&&>(e)
where type must be a class type and (ordinarily) names a class that has virtual functions. In the first case, e
must be a valid pointer (§ 2.3.2, p. 52); in the second, e
must be an lvalue; and in the third, e
must not be an lvalue.
In all cases, the type of e
must be either a class type that is publicly derived from the target type, a public
base class of the target type, or the same as the target type. If e
has one of these types, then the cast will succeed. Otherwise, the cast fails. If a dynamic_cast
to a pointer type fails, the result is 0. If a dynamic_cast
to a reference type fails, the operator ...
Get C++ Primer, Fifth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.