Code:
class B {};
class D : public B {};

int main()
{
    B *x = new D;
   if (dynamic_cast<D *>(x) == NULL) std::cout << "x is of type D\n";
}
2 small fix...
Code:
class B {
    virtual void f();
};
class D : public B {
    virtual void f();
};

int main()
{
    B *x = new D;
   if (dynamic_cast<D *>(x) != NULL) std::cout << "x is of type D\n";
}