#include <iostream>

struct A { virtual ~A(){} };
struct B { virtual ~B(){} };
struct C : A, B {};

struct S { virtual ~S(){} };

int main(void) {
	A* a = new C;
	B* b = dynamic_cast<B*>(a);
	std::cout << b << std::endl;
	
	S* s = reinterpret_cast<S*>(a);
	b = dynamic_cast<B*>(s);
	std::cout << b << std::endl;
	return 0;
}
