If the operand of the
dynamic_cast
refers to the object under construction or destruction
and the static type of the operand
is not a pointer to or object of
the constructor or destructor's own class or one of its bases,
the
dynamic_cast results in undefined behavior
.