struct A
{
  virtual void f();
};

struct B
  : public A
{ };

A *a = 0;
B *b = dynamic_cast<B *>(a);

const char *c = 0;
char *d = const_cast<char *>(c);
char *e = reinterpret_cast<char *>(a);
A *f = static_cast<A *>(b);


int main()
{
  return 0;
}
