, dynamic_cast , . , , RTTI. .
dynamic_cast :
- std::type_info ;
- std::type_info ;
- , , , , .
void f (Base & _base)
{
if (Derived* pDerived = dynamic_cast< Derived * >(& _base))
do1();
else
do2();
}
, , - , . , Derived , dynamic_cast , - nullptr. , ( , , ).
dynamic_cast , :
void f (Base & _base)
{
Derived & derived = dynamic_cast< Derived & >(_base);
...
}
, , , . . , . , , dynamic_cast nullptr , .
dynamic_cast, , , . , . dynamic_cast , static_cast C:
● ;
● ( );
● ( ).
reinterpret_cast. . .
. const_cast. const_cast volatile