Quote Originally Posted by Zaccheus View Post
I'm pretty sure you can even dynamically cast between a pointer to A1 and a pointer to B1 !
That's a so called crosscast and it's possible using a dynamic_cast.

Note however that this involves an implicit downcast so it should be avoided because it's not typesafe (cannot be verified at compiletime so it can fail at runtime).