dynamic_cast演算子を使ったキャストでは正しくキャストできるときにはキャストを行うができないときはnullを返す。
派生クラスのオブジェクトをその親クラスのポインタで取得したとき、派生クラスへのdynamic_castを行うことによってそのオブジェクトがその派生クラスかどうか知ることができる。
#include <iostream> using namespace std; class Base { public: virtual void func() { cout << "base" << endl; } }; class Child : public Base { public: void func() { cout << "child" << endl; } }; int main() { Base base; Base* pBase; Child child; Child* pChild; pBase = &child; pChild = dynamic_cast<Child*>(pBase); if(pChild) pChild->func(); else cout << "Can't Cast" << endl; }