Multiple inheritance casting from base class to different derived class
c++, casting, multiple-inheritance
Solution
No. This is not possible (direct casting from `A*` to `B*`).
Because the address of `A` and `B` are at different locations in `class C`. So the cast will be always unsafe and possibly you might land up in unexpected behavior. Demo.
The casting should always go through `class C`. e.g.
A* pa = new C();
B* pb = static_cast<C*>(pa);
^^^^ go through class C
Demo
Problem
Let's assume there is such class hierarchy: ``` class A //base class class B //interface class C : public A, public B ``` Then C object is created: ``` A *object = new C(); ``` Is it possible to cast object to B ? Important: I assume I don't know that object is C. I just know that it implements interface B